تعديل دفعة لصفحات Elementor لإزالة أو تحرير عناصر معينة
إن إدارة محتوى مواقع ووردبريس التي تستخدم إضافة Elementor قد تكون عملية معقدة، خصوصًا عندما يتعلق الأمر بإزالة أو تعديل عناصر معينة بشكل جماعي. قد تحتاج في بعض الأحيان إلى تعديل محتوى مئات الصفحات بسبب تغيير تصميم معين أو تصحيح خطأ في أحد المكونات. في هذه المقالة، سنستعرض كيفية إجراء تعديل جماعي على صفحات Elementor لإزالة أو تعديل عنصر محدد (حاوية أو ويدجت)، مما يسهل إدارة الموقع ويضمن توافق التصميم.
فهم عملية تعديل العناصر في Elementor
تعتبر إضافة Elementor واحدة من أكثر إضافات ووردبريس شهرة في تصميم الصفحات. لكن في حال إدخال عناصر معينة يدوياً على عدد كبير من الصفحات، قد تجد أنك بحاجة لإزالة هذه العناصر بطريقة سهلة وسريعة. يمكن تحقيق ذلك من خلال كتابة دالة مخصصة تلبي هذا الغرض، بدلاً من القيام بذلك يدويًا لكل صفحة.
استخدام دوال ووردبريس للتعديل الجماعي
للبدء، يمكنك استخدام دالة مثل get_posts
لاسترداد كافة الصفحات المنشورة، ثم تمرير كل صفحة إلى دالة أخرى مخصصة لإزالة العنصر المطلوب. إليك كيفية القيام بذلك:
function bulk_remove_elementor_widget_with_log() {
$log = '';
$posts = get_posts(array(
'post_type' => 'post',
'meta_key' => '_elementor_data',
'post_status' => 'publish',
'numberposts' => -1,
));
if (empty($posts)) {
return "لم يتم العثور على أي صفحات.";
}
foreach ($posts as $post) {
$log .= "معالجة الصفحة ID: " . $post->ID . " - " . $post->post_title . "\n";
$result = remove_elementor_widget_by_id_with_log($post->ID);
if ($result) {
$log .= "تم إزالة العنصر من الصفحة ID: " . $post->ID . "\n";
} else {
$log .= "لم يتم العثور على العنصر في الصفحة ID: " . $post->ID . "\n";
}
}
return $log;
}
البحث عن وإزالة العنصر
للبحث عن العنصر المحدد وإزالته من هيكل البيانات الخاص بـ Elementor، يمكن استخدام دالة مخصصة تقوم بذلك بصورة فعالة. هذه الدالة ستقوم بالبحث داخل العناصر المتواجدة، وعند العثور على العنصر ذو الـ ID المحدد، ستقوم بإزالته. إليك كيف يمكنك القيام بذلك:
function search_and_remove_widget($elements, &$found) {
foreach ($elements as $key => &$element) {
if (isset($element['id']) && $element['id'] === '4132e9d6') {
unset($elements[$key]);
$found = true;
}
if (isset($element['elements'])) {
$element['elements'] = search_and_remove_widget($element['elements'], $found);
}
}
return $elements;
}
تحديث بيانات العناصر في الصفحات
بعد إزالة العنصر بنجاح، يجب تحديث بيانات Elementor الخاصة بالصفحة. يتم ذلك من خلال إعادة ترميز البيانات المحذوفة وتخزينها مرة أخرى في قاعدة البيانات باستخدام دالة مثل update_post_meta
.
function remove_elementor_widget_by_id_with_log($post_id) {
$elementor_data = get_post_meta($post_id, '_elementor_data', true);
$elementor_data = json_decode($elementor_data, true);
$found = false;
$new_elementor_data = search_and_remove_widget($elementor_data, $found);
if ($found) {
$new_elementor_data = json_encode($new_elementor_data);
update_post_meta($post_id, '_elementor_data', $new_elementor_data);
}
return $found;
}
مزايا استخدام التعديل الجماعي في Elementor
تتيح لك هذه الطريقة إدارة مناسبة للعناصر عن طريق تعديلها بشكل جماعي، مما يوفر عليك الكثير من الوقت والجهد. يمكنك بسهولة تحديث محتوى موقعك بشكل متناسق ودون الحاجة لتكبد عناء البحث والتغيير يدويًا لكل صفحة.
خاتمة
إن إجراء تعديلات جماعية على صفحات Elementor ليس بالأمر المستحيل، بل هو تجربة تتطلب بعض المهارات البرمجية البسيطة. إذا كنت بحاجة للقيام بتعديلات سريعة، فإن استخدام الدالة المخصصة المذكورة أعلاه يعد الحل الأمثل.
تعتبر عملية تعديل العناصر في صفحات Elementor خطوة مهمة لضمان تحسين الأداء والتصميم. باستخدام هذه الدوال، يمكنك تنفيذ عملية Bulk edit elementor pages to remove/edit something (container/widget) بسهولة وكفاءة.