Câu trả lời:
Bạn có thể sử dụng EntityFieldQuery
để truy xuất danh sách các nút, sau đó cập nhật các trường của nút với 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);
}
}
Nếu đây là hoạt động một lần, bạn có thể sử dụng chức năng Thực thi PHP của mô-đun Devel để chạy ở trên: nếu không, bạn có thể tạo mô-đun tùy chỉnh đơn giản.
Tôi sẽ sử dụng Lượt xem Hoạt động hàng loạt và sử dụng "Tập lệnh PHP tùy ý thực thi" để thực hiện các mục cơ bản ở trên, nhưng bạn không phải thực hiện tất cả các mã bổ sung, chỉ là đoạn trích nhỏ thực hiện những gì bạn muốn (như $object->field_foo['und'][0]['value'] = 'some_value'
)
Nếu bạn chỉ muốn cập nhật trường với một số giá trị, thì thay thế hiệu quả hơn cho câu trả lời được chấp nhận là:
$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);
}
}
Sự khác biệt là trong việc sử dụng trực tiếp field_attach_presave
và các field_attach_update
hàm, chỉ cập nhật chính xác trường nút và bỏ qua phần còn lại của quá trình lưu nút. Điều này có tác động rằng sẽ không có nút cài đặt trước / lưu nút nào được gọi, ngày "đã thay đổi" sẽ không được cập nhật thành ngày hiện tại, v.v ... Theo trường hợp sử dụng của bạn, có thể tốt hơn khi sử dụng toàn bộ quá trình node_save ().
Cài đặt và kích hoạt mô-đun Lượt xem Hoạt động hàng loạt và tạo chế độ xem với màn hình trang.
Thêm => Hoạt động hàng loạt: Trường nội dung (Nội dung) trong chế độ xem.
Tham khảo
Chọn các trường bạn muốn đặt giá trị mặc định.
Trong trường hợp của bạn tiêu đề của nó. Trong ảnh là thẻ.
Lưu chế độ xem và đi đến trang mà nó đã tạo. Nếu bạn có nhiều trang kết quả, bạn có thể chọn chọn tất cả các mục trên trang hiện tại, tất cả các mục trên tất cả các trang hoặc bạn có thể tự chọn hộp kiểm tương ứng với các nút riêng lẻ. Ít nhất một hộp kiểm tra phải được kiểm tra để tiến hành.
Bây giờ bạn đặt giá trị mặc định và lưu nó.