回答:
を使用EntityFieldQuery
してノードのリストを取得し、次のようにノードのフィールドを更新できますnode_save()
。
$lang = LANGUAGE_NONE; // Replace with ISO639-2 code if localizing
$node_type = 'page'; // Machine name of the content type
$query = new EntityFieldQuery;
$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->execute();
if (!empty($result['node'])) {
$nodes = entity_load('node', array_keys($result['node']));
foreach($nodes as $node) {
// Replace field_foo with the machine name of the field to update.
// - 0 refers to specific value within the field array, for when the field contains
// multiple values. If the field only has one value, it should be 0.
$node->field_foo[$lang][0]['value'] = 'New Value';
node_save($node);
}
}
これが1回限りの操作である場合、DevelモジュールのExecute PHP関数を使用して上記を実行できます。それ以外の場合は、単純なカスタムモジュールを作成できます。
何らかの値でフィールドのみを更新したい場合、受け入れられた回答に対するよりパフォーマンスの高い代替はこれです:
$lang = LANGUAGE_NONE; // Replace with ISO639-2 code if localizing
$node_type = 'page'; // Machine name of the content type
$query = new EntityFieldQuery;
$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->execute();
if (!empty($result['node'])) {
$nodes = entity_load('node', array_keys($result['node']));
foreach($nodes as $node) {
// Replace field_foo with the machine name of the field to update.
// - 0 refers to specific within the field array, for when the field contains
// multiple values. If the field only has one value, it should be 0.
$node->field_foo[$lang][0]['value'] = 'New Value';
field_attach_presave('node', $node);
field_attach_update('node', $node);
}
}
違いは、直接使用することfield_attach_presave
とfield_attach_update
、ノードフィールドのみを正しく更新し、ノード保存プロセスの残りをスキップする関数です。これは、ノードの事前保存/保存フックが呼び出されない、「変更された」日付が現在の日付などに更新されないなどの影響があります。
Views Bulk Operationsモジュールをインストールして有効にし、ページ表示のあるビューを作成します。
追加=>一括操作:ビュー内のコンテンツ(コンテンツ)フィールド。
参照
デフォルト値を設定するフィールドを選択します。
あなたの場合、そのタイトル。画像ではタグです。
ビューを保存し、作成したページに移動します。結果のページが複数ある場合は、現在のページのすべてのアイテム、すべてのページのすべてのアイテムを選択するか、個々のノードに対応するボックスを手動で選択できます。続行するには、少なくとも1つのチェックボックスをオンにする必要があります。
次に、デフォルト値を設定して保存します。