উত্তর:
তার (টিএম) জন্য একটি মডিউল রয়েছে।
বাল্ক মুছুন দেখুন ।
নোড_ডিলেট_ মাল্টিপল () -তে একক কল সহ কয়েক হাজার নোড মুছে ফেলা হলে টাইমআউট বা মেমরির সমস্যাগুলি এড়াতে নোডগুলি মুছতে ব্যাচ এপিআই ব্যবহার করবে।
বাল্ক মোছা একটি পরিত্যক্ত মডিউল। বিকল্পগুলির জন্য দেখুন:
অনুপ্রেরণার জন্য ডেভেল জেনারেট মডিউলটির দিকে তাকানো, এটির "কন্টেন্ট কিল" ফাংশনটি এখানে devel_generate_content_kill
:
function devel_generate_content_kill($values) { $results = db_select('node', 'n') ->fields('n', array('nid')) ->condition('type', $values['node_types'], 'IN') ->execute(); foreach ($results as $result) { $nids[] = $result->nid; } if (!empty($nids)) { node_delete_multiple($nids); drupal_set_message(t('Deleted %count nodes.', array('%count' => count($nids)))); } }
সুতরাং আমি সমস্ত নোডগুলি মুছতে ডেলভেল জেনারেটটি ব্যবহার করে চেষ্টা করব তবে নতুন কোনও তৈরি না করে, অথবা devel_generate_content_kill(array('node_types' => array('my_node_type')));
সরাসরি কল করতে উদাহরণস্বরূপ / ড্যাভেল / পিএফপি ব্যবহার করব ।
ড্রুপাল 8-এ একটি উপায় হ'ল এনটিটিস্টোরিজ ইনটারফেস :: ডিলিট () পদ্ধতিটি দিয়ে এনটিটিকিউরি () পদ্ধতিটি ব্যবহার করুন:
$result = \Drupal::entityQuery("node")
->condition("type", "YOUR_CONTENT_TYPE_NAME")
// If the update is being executed via drush entityQuery will only
// return the content uid 0 have access to. To return all set
// accessCheck to false since it defaults to TRUE.
->accessCheck(FALSE)
->execute();
$storage_handler = \Drupal::entityTypeManager()->getStorage("node");
$entities = $storage_handler->loadMultiple($result);
$storage_handler->delete($entities);
আপনার যদি অন্য ফিল্টার / শর্ত প্রয়োগ করতে হয় তবে আপনি কোয়েরি ইন্টারফেস ইন্টারফেস পৃষ্ঠাটি দেখতে পারেন
সম্পাদনা করুন (অন্যভাবে, 4k4 @ ধন্যবাদ):
$storage_handler = \Drupal::entityTypeManager()->getStorage("node");
$entities = $storage_handler->loadByProperties(["type" => "YOUR_CONTENT_TYPE_NAME"]);
$storage_handler->delete($entities);
আপনি যদি কোডটি পরীক্ষা করতে চান তবে আপনি ব্যবহার করতে পারেন:
drush php-eval '$storage_handler = \Drupal::entityTypeManager()->getStorage("node"); $entities = $storage_handler->loadByProperties(["type" => "article"]); $storage_handler->delete($entities);'
এটি আপনার সমস্ত নিবন্ধ মুছে ফেলবে।
$entities = $storage_handler->loadByProperties(['type' => 'YOUR_CONTENT_TYPE_NAME']);
entityQuery
সেট করা উচিত accessCheck
। অন্যথায় যদি আপনি এটিকে ড্রাশে চালনা করেন তবে ডিফল্টরূপে অ্যাক্সেসচেককে সত্য করে সেট করা হয় এবং যে কোনও নোডে ইউআইডি 0 অ্যাক্সেস থাকে না সেগুলি ফেরত দেওয়া হবে না।
আপনি যদি ইউআই এর মাধ্যমে খাঁটিভাবে এটি করতে চান তবে আপনি ডেভেল_জেনারেট মডিউলটি ব্যবহার করতে পারেন।
এইভাবে, কোনও নোড তৈরি হবে না এবং নির্বাচিত ধরণের সমস্ত নোড মুছে ফেলা হবে।
ড্রুপাল ইনস্টলেশনগুলির মূলের নীচে কোড সহ একটি ফাইল তৈরি করুন এবং ফাইলটি কার্যকর করুন।
<?php
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$aquery= db_query("SELECT nid FROM {node} AS n WHERE n.type = 'company'");
while ($row = db_fetch_object($aquery)) {
node_delete($row->nid);
}
?>
আপনি এটি ড্রপাল 7 এ ডভিল মডিউলের এক্সিকিউট পিএইচপি কোড অংশটি ব্যবহার করে ব্যবহার করতে পারেন:
$result= db_query("SELECT nid FROM {node} AS n WHERE n.type = 'TYPE'");
foreach ($result as $record) {
node_delete($record->nid);
}
টার্মিনালে এটি করুন, যদি আপনি ড্রশ এবং সমস্ত মডিউল মুছুন :
drush delete-all [content-type-machine-name]
Examples:
drush delete-all article Delect all article nodes.
drush delete-all all Delete nodes of all types.
drush delete-all --reset Delete nodes of all types, and reset node, revision and comment counters.
drush delete-all users Delete users.
Options:
--reset Reset counter for node, revision and comment tables.
--roles pick roles
ভিউজ বাল্ক অপারেশনগুলি একটি ব্যাচাপিআই সক্ষম, কনফিগারযোগ্য নোড অ্যাডমিন স্ক্রিন সরবরাহ করে যা প্রকার অনুসারে ফিল্টারিং করতে দেয়, আপনার অনুসন্ধানের মানদণ্ডের সাথে মিলিয়ে সমস্ত নোড নির্বাচন করে etc.
এটি ড্রুপাল 6 এ আমার হ্যান্ড-ডাউন সমাধান - ব্যাচ মুছা ছাড়াও, আপনি নোডগুলি বাল্ক-সম্পাদনা করতে পারেন এবং অন্যান্য জিনিসপত্রের গুচ্ছ করতে পারেন।
দেখে মনে হচ্ছে ড্রুপাল 7 সংস্করণটি এখনও প্রস্তুত নয় - তবে আমি ডি 7 রিলিজের জন্য সেই মডিউলটি দেখছি।
আরেকটি স্নিপেট হ'ল:
$query = db_query("SELECT n.nid FROM {node} n WHERE n.type = 'TO_BE_DELETED'");
while ($n = db_fetch_object($query))
{
node_delete($n->nid);
}
TO_BE_DELETED
মুছে ফেলার বিষয়বস্তু কোথায় ।
db_delete('node')
ডিভেল মডিউল সহ, ড্রশ ব্যবহার করে:
drush genc 0 --types=article --kill
বা ইউআইতে এখানে বর্ণিত হিসাবে: http://befused.com/drupal/delete-nodes-devel
devel_generate
যা সক্ষম করা প্রয়োজন। এবং একাধিক ধরণের জন্য এটিdrush genc 0 --kill --types="article, page"
আমি সমস্ত মডিউল মুছুন ব্যবহার করি , এটি ডি 8 এর সাথে দুর্দান্ত কাজ করে এবং খুব দরকারী ড্রশ কমান্ড সরবরাহ করে। উদাহরণস্বরূপ, article
সামগ্রীর ধরণের সমস্ত সামগ্রী মুছতে :
drush delete-all article
আপনি যদি মাইগ্রেট মডিউল সক্ষম করে থাকেন তবে আপনি এটি ব্যবহার করতে পারেন:
$ drush migrate-wipe <content-type>
এই মডিউলটি কোনও সাইট থেকে সমস্ত সামগ্রী এবং / অথবা ব্যবহারকারীদের মুছতে ব্যবহৃত হয়। এটি মূলত একটি বিকাশকারী সরঞ্জাম, যা বেশ কয়েকটি ক্ষেত্রে কাজে আসতে পারে
https://www.drupal.org/project/delete_all
যেমন বাল্ক মুছুন মডিউলটি ব্যাচ এপিআই ব্যবহার করে নির্দিষ্ট নোড-টাইপের যে কোনও নোড মুছে ফেলবে will অল্প সংখ্যক নোডের জন্য ভিউজ ব্যাচ অপারেশন মডিউল (ভিবিও) ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। তবে আপনাকে যদি ১০,০০০ নোড মুছতে হয় তবে এই মডিউলটি আরও ভাল বিকল্প হতে পারে।
প্রোগ্রামেটিকভাবে সমস্ত কন্টেন্টের নোড মুছুন এখানে একটি সহায়ক ফাংশন:
function _delete_all_nodes_of_type($type = '') {
// Return all nids of nodes of type.
$nids = db_select('node', 'n')
->fields('n', array('nid'))
->condition('n.type', $type)
->execute()
->fetchCol(); // returns an indexed array
if (!empty($nids)) {
node_delete_multiple($nids);
drupal_set_message(format_plural(count($nids), count($nids) . ' node Deleted.', count($nids) . ' nodes Deleted.'));
}
}
আমি db_delete ব্যবহার করে শেষ করেছি , কোনও মডিউল প্রয়োজন নেই:
<?php
db_delete('node')
->condition('type', 'MY_CONTENT_TYPE')
->execute();
?>
সম্পাদনা / সতর্কতা: নীচে বারডিরের মন্তব্য দেখুন। এই পদ্ধতিটি নোড সম্পর্কিত সমস্ত ডেটা পরিষ্কার করে না।
আপনি কোড করতে চান না, এবং আপনি এই মডিউলটি চেষ্টা করতে পারেন, https://drupal.org/project/total_control
কেবল ড্যাশবোর্ডে যান -> সামগ্রী, সমস্ত সামগ্রী নির্বাচন করুন (আপনি সামগ্রীর ধরণের মাধ্যমে ফিল্টার করতে পারেন), তারপরে "আইটেম মুছুন" নির্বাচন করুন