تدوينة اليوم هي حول سؤال وصلني العديد من مرات، وهو كيفية عرض المقالات المنشورة في آخر 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 );
في هذه المثال قمنا بتحديد القيم التالية:
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( 'لم يتم نشر أي مقالة خلال الأربعة العشرين ساعة الماضية', 'sb' );
}
// Restore original Post Data.
wp_reset_postdata();
$output = ob_get_clean();
return $output;
}
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 ساعة على العمود الجانبي، تأكد من أن وودبريس الخاص بك يدعم استعمال الأكواد القصيرة في ودجت “نص”.
لكي يسهل على المبتدئين استعمال كود الشرح قمت بعمله على شكل إضافة ووردبريس يمكن تحملها من هنا.
أرجو أن تدوينة اليوم كانت مفيدة وسهلة الفهم، لا تترد عن ترك أي استفسار لك بخصوص هذا الموضوع من خلال التعليقات.
دمتم في رعاية الرحمان.