في مقالة سابقة كنا قد تطرقنا لموضوع عرض مقالات ذات صلة دون إضافة معتمدين على الوسوم أو التصنيفات، كذلك هناك عدة إضافات متخصصة في عرض مقالات ذات صلة لكن لا واحدة منها تمنح خاصية عرض مقالات ذات صلة حسب الكاتب، رغم أنه شيء مفيد جدا في حالة وجود عدة كتاب ومساهمين في الموقع.
إذا كان لديك موقع يتكون من عدة كتاب ومساهمين، هؤلاء سيكونون لك شاكرين إذا قمت بعرض المقالات التابعة لكل واحد منهم تحت كل مقالة له.
إذا كنت بالفعل تريد هذا فقط عليك إضافة هذا الكود إلى ملف functions.php
للقالب المفعل أو لإضافتك المخصصة
<?php
function sb_related_author_posts() {
global $authordata, $post;
// WP_Query arguments.
$args = array(
'post_type' => array( 'post' ),
'post__not_in' => array( $post->ID ),
'author' => $authordata->ID,
'posts_per_page' => '5',
'cache_results' => true,
'update_post_meta_cache' => true,
'update_post_term_cache' => true,
);
// The Query.
$query = new WP_Query( $args );
ob_start();
// The Loop.
if ( $query->have_posts() ) {
echo '<ul>';
while ( $query->have_posts() ) {
$query->the_post();
the_title( '<h3 class="related-by-author"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h3>' );
}
echo '</ul>';
}
return ob_get_clean();
// Restore original Post Data.
wp_reset_postdata();
}
طبعا، لكي تتمكن من إظهار الوظيفة في القالب يمكنك فتح ملف index.php
وبعدها ضع هذا الكود في المكان الذي تفضله
<?php echo sb_related_author_posts(); ?>
كذلك يمكنك إنشاء كود قصير يمكنك من عرضها داخل المقالات، في ودجات نص أو في أي مكان تريده وذلك بوضع هذا السطر من الكود تحت الوضيفة.
add_shortcode( 'related_post_by_author', 'sb_related_author_posts' );
كذلك يمكنك تغيير قيمة posts_per_page
حسب عدد المقالات التي تريد عرضها.
أتمنا أن الموضوع قد لقى إعجابك، بداية أسبوع موفقة.
mahmouud ragaey قال
اخي سعيد لقد اني قمت بوضع الكود في مدونتي ولكنها دائما يعطيني صفحه بيضاء وعندما اقوم بحذف البرامتر من [code lang=”php” inline=true]post__not_in[/code] من [code lang=”php” inline=true]new WP_Query($args);[/code] يعمل ؟؟؟؟ فهل عندك حل واكون لك مشكورا
سعيد البقالي قال
السلام عليكم أخي محمود,
قمت للتو بفحص الكود و إعادة تجربتة على عدة قوالب و لم يحدث معي أي خطأ, من المحتمل أن يكون هنالك تعارض للكود مع أحد الإضافات أو الوظائف الموجودة في قالبك… إذا أحببت يمكنك إرسالي ملف [code lang=”php” inline=true]functions.php[/code] الخاص بالقالب الذي تستعمله لكي أستطيع تعيين الخطأ.
mahmouud ragaey قال
اشكرك بشده اخي سعيد .. اصبح يعمل معي بالفعل .. لكن حقا اشكرك جدا لطلبك رؤيه ملفي لفحصه