画像フィールドのあるコンテンツタイプがあります。すべての画像を更新して、ノードのタイトルを画像のaltおよびタイトルにするにはどうすればよいですか?何百ものノードを編集したくない...
ありがとうございました。ダニエル
基本的なロジックは次のようになります。
$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を使用して、より迅速なソリューションを作成できると確信していますが、今すぐ具体化する時間はありません。
[〜#〜] 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);
これはクローズされた可能性がありますが、同じ懸念事項を検索しているときにこれを確認しました。これまでのところ、Drupal 7には2つのモジュールが役立つ可能性があります。これが同じ要件の検索に役立つことを願っています。