Відповіді:
Ви можете використовувати 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);
}
}
Якщо це разова операція, ви можете використовувати функцію Execute PHP модуля Devel , щоб виконати вищезазначене: інакше можна створити простий спеціальний модуль.
Я використовував би масові операції Views і використовував "Виконати довільний скрипт PHP", щоб зробити по суті пункти вище, але вам не доведеться робити весь додатковий код, лише маленький фрагмент, який робить все, що ви хочете (як $object->field_foo['und'][0]['value'] = 'some_value'
)
Якщо ви хочете лише оновити поле з деяким значенням, то більш прийнятною альтернативою прийнятої відповіді є така:
$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
функцій, які правильно оновлюють лише поле вузла та пропускають решту процесу збереження вузла. Це може вплинути на те, що жодні гачки попереднього збереження / збереження вузла не будуть викликані, "змінена" дата не буде оновлена до поточної дати тощо.
Встановіть та увімкніть модуль « Масові операції перегляду» та створіть перегляд із відображенням сторінки.
Додати => Масові операції: поле перегляду вмісту (вмісту).
Зверніться
Виберіть поля, для яких потрібно встановити значення за замовчуванням.
У вашому випадку його назва. На зображенні це мітки.
Збережіть подання та перейдіть на створену ним сторінку. Якщо у вас є більше однієї сторінки результатів, ви можете вибрати всі елементи на поточній сторінці, всі елементи на всіх сторінках, або ви можете встановити прапорці вручну відповідно до окремих вузлів. Щоб продовжити, потрібно встановити хоча б один прапорець.
Тепер ви встановлюєте значення за замовчуванням і зберігаєте його.