web-dev-qa-db-ja.com

画像のaltとタイトルを一括更新するにはどうすればよいですか?

画像フィールドのあるコンテンツタイプがあります。すべての画像を更新して、ノードのタイトルを画像のaltおよびタイトルにするにはどうすればよいですか?何百ものノードを編集したくない...

ありがとうございました。ダニエル

6
Daniel

基本的なロジックは次のようになります。

$nodes = entity_load('node', FALSE, array('type' => 'the_type'));

foreach ($nodes as $node) {
  $node->field_image[$node->language][0]['alt'] = $node->title;
  $node->field_image[$node->language][0]['title'] = $node->title;

  node_save($node);
}

多くのノードがある場合は、おそらくそれをバッチジョブに分割する必要があります。

また、VBOといくつかのカスタムPHPを使用して、より迅速なソリューションを作成できると確信していますが、今すぐ具体化する時間はありません。

5
Clive

[〜#〜] vbo [〜#〜] を使用すると、非常に簡単に実行できます。必要なのは、「任意のPHP script」を実行して、altとタイトルを追加したいノードでです。フィールド名を変更します。 「field_image」。

foreach ($entity->field_image[$entity->language] as $key => $value) {
  if(empty($value['alt'])) $value['alt'] = $entity->title;
  if(empty($value['title'])) $value['title'] = $entity->title;
  $entity->field_image[$entity->language][$key] = $value;
}
node_save($entity);
1
zniki.ru

これはクローズされた可能性がありますが、同じ懸念事項を検索しているときにこれを確認しました。これまでのところ、Drupal 7には2つのモジュールが役立つ可能性があります。これが同じ要件の検索に役立つことを願っています。

1
jaesperanza