تدوينة اليوم هي حول سؤال وصلني العديد من مرات، وهو كيفية عرض المقالات المنشورة في آخر 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 ساعة على العمود الجانبي، تأكد من أن وودبريس الخاص بك يدعم استعمال الأكواد القصيرة في ودجت “نص”.
لكي يسهل على المبتدئين استعمال كود الشرح قمت بعمله على شكل إضافة ووردبريس يمكن تحملها من هنا.
أرجو أن تدوينة اليوم كانت مفيدة وسهلة الفهم، لا تترد عن ترك أي استفسار لك بخصوص هذا الموضوع من خلال التعليقات.
دمتم في رعاية الرحمان.
شفيق قال
السلام علكيم ورحمة الله وبركاته
جزيل الشكر لك أخي على الرد السريع و المجهودات التي قمت بها من أجل شرح هذا الموضوع.
للأسف ليس لدي دراية بلغة php ولم أتمكن من نقل الأكواد للأماكن المخصصة لها.
جزاك الله خيرا أخي الكريم
سعيــــد البقـــــــــــــــالي قال
و عليكم السلام أخي، هناك دورات جيدة على اليوتوب تعلمك أساسيات لغة الـ PHP، إذا لم تكن تعرف تلك اﻷساسيات على اﻷقل من الصعب عليك التعديل على قوالب ووردبريس.
بالتوفيق دائما.
يارباس قال
شكرا جزيلا أخي
أين يمكن وضع الكود بالضبط
سعيــــد البقـــــــــــــــالي قال
يمكن وضع الكود في ملف الـ [code lang=”php” inline=true]functions.php[/code] أو عبر إنشاء إضافة ووردبريس خاصة.
بالتوفيق
شفيق قال
أسعد الله صباحك أخي
لقد مررت معاملات للملف [code lang=”php” inline=true]Query.php[/code]. وبعدها نسخت الكود الذي سيعرض لنا المقالات المنشوورة آخر 24 ساعة في ملف [code lang=”php” inline=true]functions.php[/code]. ثم استخدمت الكود القصير [last_24_hors] في خانة (نص) الموجودة ضمن ودجات.
هذا ما يظهر عند الحفظ : [last_24_hors]
رغم أن القالب يدعم إستعمال الأكواد القصيرة في ودجت “نص”.
وشكرا.
سعيــــد البقـــــــــــــــالي قال
أسعدك الله أخي
قمت بعمل الكود على شكل إضافة ووردبريس يمكن تحميلها من آخر التدوينة لكي يتسنى للمبتدئين في المجال إستعمالها في مواقعهم بسهولة.
بالتوفيق.
شفيق قال
شكرا جزيلا أخي سعيد على المساعة والتوضيح .
الإضافة فعالة وهذا ما كنت أبحث عنه..
Chapeau bas
سعيــــد البقـــــــــــــــالي قال
العفو أخي يسعدني ذلك
الأمل قال
شرح جميل و مبسط جعله الله زكاة علم لك
سعيد البقالي قال
شكرا لك ووفقط الله.
جمال قال
السلام عليكم أخي سعيد،
أبحث عن الكود المستعمل في ودجت 24 ساعة في موقع http://www.alyaoum24.com
إن كنت تستطيع مساعدتي مشكورا
Jadid MouhCine قال
أخي الطريقة فعالة و لكن الستيل أو مظهر shotcode يبدو بدون css كيف يمكنني Stylish أو Customise هادا الكود مع العلم أني إستعملته كـ ودجةHTML