답변:
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);
}
}
이 작업이 일회성 작업 인 경우 Devel 모듈의 PHP 실행 기능을 사용하여 위를 실행할 수 있습니다. 그렇지 않으면 간단한 사용자 지정 모듈을 만들 수 있습니다.
내가 사용하는 것이 조회수 운영 (원자재) 및 사용 위의 본질적 항목을 할 "임의의 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
노드 필드 만 올바르게 업데이트하고 나머지 노드 저장 프로세스를 건너 뛰는 기능입니다. 이는 노드 사전 저장 / 저장 후크가 호출되지 않고 "변경된"날짜가 현재 날짜 등으로 업데이트되지 않는 영향을 미칩니다. 사용 사례에 따라 전체 node_save () 프로세스를 사용하는 것이 더 좋습니다.
Views Bulk Operations 모듈을 설치 및 활성화하고 페이지 표시가있는보기를 작성하십시오.
추가 => 대량 작업 : 컨텐츠 (컨텐츠) 필드를 봅니다.
보내다
기본값을 설정하려는 필드를 선택하십시오.
귀하의 경우 제목입니다. 이미지에서는 태그입니다.
보기를 저장하고 작성된 페이지로 이동하십시오. 결과 페이지가 둘 이상인 경우 현재 페이지의 모든 항목, 모든 페이지의 모든 항목을 선택하거나 개별 노드에 해당하는 확인란을 수동으로 선택할 수 있습니다. 계속하려면 하나 이상의 확인란을 선택해야합니다.
이제 기본값을 설정하고 저장하십시오.