كيفية عرض المقالات المنشورة خلال الأربع والعشرين ساعة الماضية على ووردبريس

how to display the posts published in the last 24 hours in wordpress

تدوينة اليوم هي حول سؤال وصلني العديد من مرات، وهو كيفية عرض المقالات المنشورة في آخر 24 ساعة، قد تبدو المسألة معقدة على البعض لكنها ليست كذلك بتاتا … لكي نصل إلى النتيجة المرغوبة ما علينا سوى عمل استعلام مخصص عبر WP_Query ونمرر له معاملات (Arguments) خاصة.

كود الاستعلام كاملا يمكن أن يكون كالتالي:

$args = array(
 'post_type'           => 'post',
 'posts_per_page'      => '10',
 'ignore_sticky_posts' => 1,
 'date_query'          => array(
 array(
 'after' => '24 hours ago',
 ),
 ),
);

$the_posts = new WP_Query( $args );

في هذه المثال قمنا بتحديد القيم التالية:

اقرأ أيضا: طريقة إضافة خاصية nofollow للروابط الخارجية تلقائيا في ووردبريس

  • post_type أعطيناه القيمة post لجلب نوع المقالات الافتراضي
  • posts_per_page لتحديد عدد المقالات المعروضة
  • ignore_sticky_posts لتجاهل المقالات المثبتة
  • date_query أهم برامتر في هذه الحالة وهو عبارة عن استعلام مخصص خاص بالتعامل مع التاريخ يمكنك التعرف عليه أكثر من هنا

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

الطريقة التي سأتبعها هنا هي إنشاء كود قصير لكي نتمكن من وضعه في أي مكان نريد أن نعرض فيه مقالات آخر الـ 24 ساعة.

/**
 * Display posts published in the last 24 hours
 *
 * @param array $atts
 */
function last_24_hors_shortcode( $atts ) {

 // Attributes.
 $atts = shortcode_atts(
 array(
 'post_type'      => 'post',
 'posts_per_page' => '10',
 ),
 $atts
 );

 // WP_Query arguments.
 $args = array(
 'post_type'           => $atts['post_type'],
 'posts_per_page'      => $atts['posts_per_page'],
 'ignore_sticky_posts' => 1,
 'date_query'          => array(
 array(
 'after' => '24 hours ago',
 ),
 ),
 );

 // The Query.
 $query = new WP_Query( $args );

 ob_start();
 
 // The Loop.
 if ( $query->have_posts() ) {
 while ( $query->have_posts() ) {
 $query->the_post();

 the_title( sprintf( '<h2 class="last-24-hots-title"><a href="%s">', esc_url( get_permalink() ) ), '</a></h2>' );

 the_title( '<h3 class="last-24-hots-title">', '</a></h3>' )
 }
 } else {
 esc_html_e( 'لم يتم نشر أي مقالة خلال الأربعة العشرين ساعة الماضية' );
 }

 $output = ob_get_clean();

 return $output;

 // Restore original Post Data.
 wp_reset_postdata();

}
add_shortcode( 'last_24_hors', 'last_24_hors_shortcode' );

إذا كانت لديك سوى القليل من الدراية بـ Codex WordPress فأكيد أنك فهمت الكود بسهولة جدا ويمكنك تطويره وجعله يعرض المقالات حسب أي تاريخ أو وقت تريد، إذا كان حالك عكس ذلك أنصحك بزيارة الروابط التالية:

اقرأ أيضا: طريقة منع المشتركين من الدخول إلى لوحة التحكم

اﻵن، يمكنك عرض المواضيع المنشورة في آخر 24 ساعة في أي مكان تريده باستخدام الكود القصير [last_24_hors]، افتراضيا قمنا بجعله يعرض عشر مقالات من نوع المقالات الافتراضي للووردبريس (post)، لكن يمكنك التحكم في ذلك عن طريق الخاصيتان post_type و posts_per_page على سبيل المثال يمكنك عرض 5 من آخر المواضيع المنشورة في نوع المقالات المخصص news بوضع الخصائص التالية:

[last_24_hors post_type="news" posts_per_page"5"]

إذا كان غرضك هو عرض المقالات المنشورة في آخر 24 ساعة على العمود الجانبي، تأكد من أن وودبريس الخاص بك يدعم استعمال الأكواد القصيرة في ودجت “نص”.

لكي يسهل على المبتدئين استعمال كود الشرح قمت بعمله على شكل إضافة ووردبريس يمكن تحملها من هنا.

اقرأ أيضا: عرض مقالات ذات صلة دون إضافة في ووردبريس

أرجو أن تدوينة اليوم كانت مفيدة وسهلة الفهم، لا تترد عن ترك أي استفسار لك بخصوص هذا الموضوع من خلال التعليقات.

دمتم في رعاية الرحمان.

close

قم بالتسجيل على قائمتي البريدية لكي تكون من الأوائل في الحصول على تدوينات وشروحات حصرية

أنا لا أرسل أبدا البريد المزعج! اقرأ سياسة الخصوصية لمزيد من المعلومات.

12 تعليق

  1. السلام علكيم ورحمة الله وبركاته
    جزيل الشكر لك أخي على الرد السريع و المجهودات التي قمت بها من أجل شرح هذا الموضوع.
    للأسف ليس لدي دراية بلغة php ولم أتمكن من نقل الأكواد للأماكن المخصصة لها.
    جزاك الله خيرا أخي الكريم

    1. و عليكم السلام أخي، هناك دورات جيدة على اليوتوب تعلمك أساسيات لغة الـ PHP، إذا لم تكن تعرف تلك اﻷساسيات على اﻷقل من الصعب عليك التعديل على قوالب ووردبريس.

      بالتوفيق دائما.

      1. أسعد الله صباحك أخي
        لقد مررت معاملات للملف [code lang=”php” inline=true]Query.php[/code]. وبعدها نسخت الكود الذي سيعرض لنا المقالات المنشوورة آخر 24 ساعة في ملف [code lang=”php” inline=true]functions.php[/code]. ثم استخدمت الكود القصير [last_24_hors] في خانة (نص) الموجودة ضمن ودجات.

        هذا ما يظهر عند الحفظ : [last_24_hors]
        رغم أن القالب يدعم إستعمال الأكواد القصيرة في ودجت “نص”.

        وشكرا.

        1. أسعدك الله أخي

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

          بالتوفيق.

  2. السلام عليكم أخي سعيد،
    أبحث عن الكود المستعمل في ودجت 24 ساعة في موقع http://www.alyaoum24.com
    إن كنت تستطيع مساعدتي مشكورا

  3. أخي الطريقة فعالة و لكن الستيل أو مظهر shotcode يبدو بدون css كيف يمكنني Stylish أو Customise هادا الكود مع العلم أني إستعملته كـ ودجةHTML

اترك تعليقًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *