जवाबों:
आप 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);
}
}
यदि यह एक-बंद ऑपरेशन है, तो आप ऊपर चलाने के लिए डेवेल मॉड्यूल के एक्सक्यूट 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
फ़ंक्शंस का उपयोग करने में है, जो केवल नोड फ़ील्ड को सही ढंग से अपडेट करते हैं और शेष नोड की बचत प्रक्रिया को छोड़ देते हैं। इसका एक प्रभाव यह है कि कोई भी नोड प्रेस्सेव / सेव हुक नहीं कहा जाएगा, "बदली गई" तारीख को वर्तमान तिथि आदि से अपडेट नहीं किया जाएगा। आपके उपयोग के मामले के अनुसार यह पूरे नोड_सेवे () प्रक्रिया का उपयोग करने के रूप में बेहतर हो सकता है।
इंस्टॉल बल्क ऑपरेशन मॉड्यूल को इंस्टॉल करें और सक्षम करें और पेज डिस्प्ले के साथ एक दृश्य बनाएं।
ऐड => बल्क ऑपरेशंस: कंटेंट (कंटेंट) फील्ड को ध्यान में रखते हुए।
देखें
डिफ़ॉल्ट मान सेट करने के लिए इच्छित फ़ील्ड का चयन करें।
आपके मामले में इसका शीर्षक। छवि में यह टैग है।
दृश्य सहेजें, और उसके द्वारा बनाए गए पृष्ठ पर जाएं। यदि आपके पास परिणामों का एक से अधिक पृष्ठ है, तो आप वर्तमान पृष्ठ पर सभी आइटम, सभी पृष्ठों पर सभी आइटम का चयन करना चुन सकते हैं, या आप व्यक्तिगत नोड्स के अनुरूप बक्से को मैन्युअल रूप से जांच सकते हैं। आगे बढ़ने के लिए कम से कम एक चेकबॉक्स की जाँच करनी चाहिए।
अब आप डिफ़ॉल्ट मान सेट करें और इसे सहेजें।