ووردبريس

استعلام WP لعرض أولى المشاركات مع meta_key ثم باقي المشاركات

مقدمة

في عالم تطوير مواقع الويب، يعتبر استعلام ووردبريس (WP Query) أداة قوية وفعالة لإدارة المحتوى وعرضه. يسعى العديد من المطورين للوصول إلى صيغة استعلام مثالية تضمن عرض المحتوى بطريقة تفاعلية ومبتكرة. في هذا المقال، سنتناول كيفية استخدام استعلام ووردبريس لعرض المشاركات بشكل يضمن أولاً ظهور المشاركات التي تحمل مفتاح التعريف "push_featured" بشكل عشوائي، تليها المشاركات الأخرى التي لا تحتوي على هذا المفتاح، مرتبة حسب التاريخ.

كيفية إعداد استعلام WP لجلب المشاركات

عند إعداد استعلام WP، نحتاج أولاً إلى تحديد المعايير الأساسية للحصول على البيانات المطلوبة. في الحالة الخاصة بنا، نرغب في استرجاع المشاركات المنشورة، ومن ثم تحديد أولئك الذين يحملون مفتاح "push_featured". هذه العملية تتطلب استخدام خاصية meta_query لتعريف الشروط المفروضة على المشاركات.

$args = array(
   'posts_per_page'      => '12',
   'post_type'           => 'place',
   'paged'               => $paged,
   'ignore_sticky_posts' => 1,
   'post_status'         => 'publish',
   'meta_query'          => array(
        'relation' => 'OR',
        array( 
            'key'     => 'push_featured',
            'compare' => 'NOT EXISTS'
        ),
        array(
            'key'     => 'push_featured',
            'compare' => 'EXISTS'
        )   
   ),
   'orderby'            => 'meta_value_num rand',
   'order'              => 'desc',
);

التعامل مع فرز المشاركات

من المهم ملاحظة أن جزء orderby في الشيفرة أعلاه يلعب دورًا حيويًا في كيفية ترتيب المشاركات. في هذه الحالة، نأمل في أن تكون المشاركات التي تحمل "push_featured" مرتبة بشكل عشوائي، ويرافقها ترتيب المشاركات الأخرى حسب التاريخ. لكن، المشكلة التي قد تواجهنا هي أن الاستعلام قد يقوم بفرز جميع المشاركات بشكل عشوائي، وهو ما لا نرغب في حدوثه.

لذا، نحتاج إلى إجراء تعديل بسيط لتحسين الفلترة والفصل بين المشاركات:

  1. إظهار المشاركات ذات المفتاح أولاً: يجب أولاً سحب المشاركات التي تحمل مفتاح "push_featured" بشكل عشوائي.
  2. عرض المشاركات الأخرى: بعد ذلك، نحتاج إلى استرجاع المشاركات الأخرى وترتيبها حسب التاريخ.

إعادة هيكلة الاستعلام

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

// استعلام لجلب المشاركات التي تحتوي على مفتاح "push_featured"
$featured_args = array(
    'posts_per_page' => 12,
    'post_type' => 'place',
    'meta_key' => 'push_featured',
    'orderby' => 'rand',
    'post_status' => 'publish',
);
$featured_posts = new WP_Query($featured_args);
// استعلام لجلب المشاركات الأخرى
$other_args = array(
    'posts_per_page' => 12,
    'post_type' => 'place',
    'meta_query' => array(
        array(
            'key' => 'push_featured',
            'compare' => 'NOT EXISTS'
        )
    ),
    'orderby' => 'date',
    'order' => 'DESC',
    'post_status' => 'publish',
);
$other_posts = new WP_Query($other_args);

عرض المشاركات بشكل منظم

بعد استرجاع المشاركات، يجب علينا الآن عرضها بطريقة مرتبة وسلسلة. يمكننا الجمع بين النتائج من كلا الاستعلامين وعرض المشاركات المميزة أولاً، تليها المشاركات الأخرى.

if ($featured_posts->have_posts()) {
    while ($featured_posts->have_posts()) {
        $featured_posts->the_post();
        // عرض المحتوى
    }
}
if ($other_posts->have_posts()) {
    while ($other_posts->have_posts()) {
        $other_posts->the_post();
        // عرض المحتوى
    }
}

في النهاية، يتيح لنا استخدام استعلام WP بشكل صحيح تنظيم المحتوى بطرق مبتكرة، مما يضمن تجربة مستخدم أفضل. يعد استعلام WP Query get posts + show FIRST posts with meta_key (sort by rand) THEN show other posts with no meta_key (sort by date) أحد الطرق الفعالة لتحقيق ذلك. عبر استثمار تقنيات مثل الفلترة والترتيب المتقدم، يمكننا تحسين جودة العرض والمساعدة في جذب الزوار إلى المحتوى الخاص بنا.

لا ننسى أهمية تحسين محركات البحث (SEO) بما يتماشى مع احتياجات الزوار ومتطلبات محركات البحث، مما يعزز من ظهور الموقع وزيادة التفاعل مع المحتوى.

احمد علي

متخصص في مجال تطوير وإدارة المواقع الإلكترونية، يتمتع بخبرة واسعة في التعامل مع منصات إدارة المحتوى، خاصة ووردبريس. يقدم أحمد حلولاً مبتكرة واستراتيجيات فعالة لتحسين أداء المواقع وتطوير تصميماتها بما يتناسب مع احتياجات المستخدمين. كما يتميز بقدرته على تبسيط المفاهيم التقنية وكتابة محتوى تعليمي يساعد الأفراد والشركات على تحسين تواجدهم الرقمي وتحقيق أهدافهم على الإنترنت.
زر الذهاب إلى الأعلى
Don`t copy text!