Respuestas:
Puede utilizar EntityFieldQuery
para recuperar una lista de nodos, luego actualizar los campos del nodo con 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);
}
}
Si se trata de una operación única, puede usar la función Ejecutar PHP del módulo Devel para ejecutar lo anterior: de lo contrario, puede crear un módulo personalizado simple.
Me gustaría utilizar Vistas a granel de Operaciones y utilizar el "Ejecutar Script PHP arbitrario" que ver esencialmente los elementos anteriores, pero usted no tiene que hacer todo el código extra, sólo el pequeño fragmento que hace lo que quiere (como $object->field_foo['und'][0]['value'] = 'some_value'
)
Si solo desea actualizar el campo con algún valor, la alternativa más eficaz a la respuesta aceptada es esta:
$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);
}
}
La diferencia está en usar directamente field_attach_presave
y field_attach_update
funciones, que actualizan correctamente solo el campo de nodo y omiten el resto del proceso de guardado de nodo. Esto tiene el impacto de que no se llamarán ganchos de guardado / guardado de nodos, la fecha "cambiada" no se actualizará a la fecha actual, etc. Según su caso de uso, puede ser mejor que usar todo el proceso node_save ().
Instale y habilite el módulo de Operaciones masivas de vistas y cree una vista con una visualización de página.
Agregar => Operaciones masivas: campo Contenido (Contenido) a la vista.
Referir
Seleccione los campos que desea establecer el valor predeterminado.
En tu caso su título. En la imagen son etiquetas.
Guarde la vista y vaya a la página que creó. Si tiene más de una página de resultados, puede elegir seleccionar todos los elementos en la página actual, todos los elementos en todas las páginas, o puede marcar manualmente las casillas correspondientes a los nodos individuales. Se debe marcar al menos una casilla de verificación para continuar.
Ahora establece el valor predeterminado y guárdelo.