2026年11月12日

2026年11月12日

حل مشكلة عدم ظهور المربعات الوصفية (Meta Boxes) في WordPress

هذه المقالة نسخة مُوطَّنة من الأصل الياباني. اقرأ الأصل الياباني

مقدمة

مربع وصفي أضافته إضافة لا يظهر في شاشة تحرير المقالة، أو مربع كان ظاهرًا ثم اختفى فجأة، أو لم تعد مربعات الشريط الجانبي تظهر بعد التحويل إلى محرر الكتل. لإخفاء المربعات الوصفية علاقة بإعدادات الشاشة وبالتوافق مع محرر الكتل.

الأعراض والأسباب

الأسباب الرئيسية لعدم ظهور المربع الوصفي:

  • إخفاؤه في خيارات الشاشة: إعداد العرض الخاص بكل مستخدم مضبوط على «إخفاء»
  • عدم التوافق مع محرر الكتل: يلزم الإعداد __block_editor_compatible_meta_box
  • مشكلة أولوية الخطاف: توقيت الخطاف add_meta_boxes غير مناسب
  • خطأ في تحديد نوع المحتوى: نوع المحتوى في المعامل الثالث غير صحيح
  • تعارض الإضافات: إضافة أخرى تحذف المربع الوصفي

خطوات الحل

الخطوة 1: تحقق من خيارات الشاشة

السبب الأكثر شيوعًا هو إخفاء المربع في خيارات الشاشة.

1. انقر «خيارات الشاشة» (Screen Options) في أعلى شاشة تحرير المقالة

2. تحقق من أن علامة المربع الوصفي المراد عرضه غير مُزالة

3. ضع العلامة ثم أغلق اللوحة فيظهر المربع

الخطوة 2: تحقق من تنفيذ add_meta_box

// functions.php — إضافة المربع الوصفي بالشكل الصحيح
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',       // المعرّف (سلسلة فريدة)
        'معلومات مخصصة',           // العنوان
        'render_my_meta_box',   // دالة رد النداء
        ['post', 'page'],       // نوع المحتوى (يمكن تحديد عدة أنواع في مصفوفة)
        'normal',               // السياق: normal/side/advanced
        'high'                  // الأولوية: high/core/default/low
    );
});

function render_my_meta_box($post) {
    wp_nonce_field('my_meta_nonce_action', 'my_meta_nonce');
    $value = get_post_meta($post->ID, '_my_field', true);
    echo '<input type="text" name="my_field" value="' . esc_attr($value) . '">';
}

الخطوة 3: عرض المربعات الوصفية في محرر الكتل

الدعم الذي يوفره محرر الكتل (Gutenberg) للمربعات الوصفية محدود.

// عرض المربع الوصفي في محرر الكتل أيضًا
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',
        'معلومات مخصصة',
        'render_my_meta_box',
        'post',
        'normal',
        'high',
        // الإعلان صراحةً عن التوافق مع محرر الكتل
        ['__block_editor_compatible_meta_box' => true]
    );
});

الخطوة 4: عطّل محرر الكتل للتحقق

// functions.php — تعطيل محرر الكتل لنوع محتوى معيّن
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if ($post_type === 'post') {
        return false;  // التبديل إلى المحرر الكلاسيكي
    }
    return $use_block_editor;
}, 10, 2);

وهناك طريقة أخرى هي تثبيت إضافة «Classic Editor» وضبطها من لوحة التحكم.

الخطوة 5: تتبّع عرض المربعات الوصفية

// التحقق من تسجيل المربعات الوصفية
add_action('add_meta_boxes', function() {
    global $wp_meta_boxes;
    error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999);  // يُنفَّذ أخيرًا بالأولوية 999

الخطوة 6: تحقق من تعارض الإضافات

# عطّل كل الإضافات بـ WP-CLI ثم تحقق من المربع الوصفي
wp plugin deactivate --all
# افتح شاشة تحرير المقالة في المتصفح وتحقق من ظهور المربع الوصفي
# إذا ظهر فعّل الإضافات واحدة تلو الأخرى لتحديد المتسببة
wp plugin activate plugin-name

الخطوة 7: إعادة ضبط بيانات المستخدم الوصفية (User Meta)

تُحفظ إعدادات خيارات الشاشة في بيانات المستخدم الوصفية.

// إعادة ضبط إعدادات عرض المربعات الوصفية لمستخدم معيّن
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');

ملاحظات

  • تُحفظ إعدادات خيارات الشاشة لكل مستخدم على حدة. وعلى المستخدمين الآخرين ضبطها بأنفسهم.
  • في محرر الكتل لا تظهر في الشريط الجانبي إلا المربعات الوصفية ذات السياق side.
  • عند استخدام ACF (Advanced Custom Fields) يلزم ضبط مجموعة الحقول بما يتوافق مع محرر الكتل.

الخلاصة

إذا لم يظهر المربع الوصفي فتحقق أولًا من علامات «خيارات الشاشة». وفي محرر الكتل يلزم الإعداد __block_editor_compatible_meta_box. وإن لم تُحل المشكلة فاعزل تعارض الإضافات. مقالات ذات صلة: عند تعذّر حفظ الحقول المخصصة، عند انهيار محرر الكتل

لديك أسئلة حول WordPress؟ ناشر هذا الموقع موجود في اليابان ويرد باللغة اليابانية. تواصل معنا (باليابانية)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲