উত্তর:
আপনি 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);
}
}
যদি এটি ওয়ান অফ অফ অপারেশন হয় তবে উপরেরটি চালাতে আপনি ডিভেল মডিউলটির এক্সিকিউট পিএইচপি ফাংশনটি ব্যবহার করতে পারেন : অন্যথায়, আপনি একটি সাধারণ কাস্টম মডিউল তৈরি করতে পারেন।
আমি ভিউজ বাল্ক অপারেশনগুলি ব্যবহার করব এবং উপরের আইটেমগুলি মূলত করানোর জন্য "সালিসি পিএইচপি স্ক্রিপ্ট এক্সিকিউট করুন" ব্যবহার করব তবে আপনাকে সমস্ত অতিরিক্ত কোড করতে হবে না, কেবলমাত্র একটি ছোট্ট স্নিপেট যা আপনি চান (পছন্দ করুন $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
ফাংশনগুলি ব্যবহার করে যা সঠিকভাবে কেবল নোড ফিল্ড আপডেট করে এবং নোড সংরক্ষণের বাকী প্রক্রিয়াটি বাদ দেয়। এর প্রভাব রয়েছে যে কোনও নোড প্রিভেভে / সেভ হুকস বলা হবে না, "পরিবর্তিত" তারিখটি বর্তমান তারিখে আপডেট করা হবে না etc. আপনার ব্যবহারের ক্ষেত্রে এটি পুরো নোড_সেভ () প্রক্রিয়াটি ব্যবহার করার চেয়ে ভাল।
ভিউজ বাল্ক অপারেশন মডিউলটি ইনস্টল এবং সক্ষম করুন এবং একটি পৃষ্ঠা প্রদর্শনের সাথে একটি দর্শন তৈরি করুন।
যোগ করুন => বাল্ক অপারেশন: সামগ্রী হিসাবে সামগ্রী (সামগ্রী) ক্ষেত্র।
পড়ুন
আপনি ডিফল্ট মান সেট করতে চান এমন ক্ষেত্রগুলি নির্বাচন করুন।
আপনার ক্ষেত্রে এটির শিরোনাম। ছবিতে এটি ট্যাগ।
দৃশ্যটি সংরক্ষণ করুন এবং এটি তৈরি করা পৃষ্ঠায় যান। যদি ফলাফলের একাধিক পৃষ্ঠাগুলি থাকে তবে আপনি বর্তমান পৃষ্ঠায় সমস্ত আইটেম, সমস্ত পৃষ্ঠার সমস্ত আইটেম বা আপনি ম্যানুয়ালি পৃথক নোডের সাথে সম্পর্কিত বাক্সগুলি চেক করতে পারেন। কমপক্ষে একটি চেকবক্স অবশ্যই এগিয়ে যেতে চেক করা উচিত।
এখন আপনি ডিফল্ট মান সেট করুন এবং এটি সংরক্ষণ করুন।