شما در وردپرس برتر هستید!
آموزش وردپرسمقالات آموزشی

نمایش مطالب محبوب در وردپرس بدون استفاده از افزونه

111بازدید

افزونه های زیادی برای نمایش مطالب محبوب در وردپرس وجود دارند، اما بسیاری از آنها از کدها و روش هایی استفاده می کنند که غیرضروری بوده و نیازی به استفاده از آنها نیست. برای مثال، بسیاری از افزونه ها وجود دارند که مطالب محبوب را بر اساس تعداد دیدگاه ها نمایش می دهند. اما امروزه نمی توان تعداد دیدگاه ها را معیار مناسبی برای این کار دانست چرا که برخی از سایت ها، دیدگاه ها را غیرفعال کرده و دیگر سایت ها نیز دیدگاه های کمی از سوی کاربران دریافت می کنند.

نمایش مطالب محبوب در وردپرس

اما امروز میخواهیم روشی ساده را ارائه کنیم که صرفا با شمارش بازدیدها، لیستی از مطالب محبوب سایت را به نمایش میگذارد.

 


نتیجه نهایی


بعد از استفاده و اجرای این آموزش، می توانید لیستی از نوشته های محبوب شبیه تصویر زیر برای سایت خود ایجاد کنید:

پیش نمایش لیستی از نوشته های محبوب سایت

 

البته تصویر بالا تنها یک نمونه ساده است. می توانید با استفاده از CSS رنگ و لعاب تازه ای به این بخش داده و از آن با استایل متناسب با قالب سایت خود خود استفاده کنید. دلیل این سادگی هم که مشاهده می کنید این است که تمرکز ما در این آموزش بیشتر روی بخش PHP/HTML کار است.

علت اینکه از این روش برای نمایش مطالب محبوب در سایت وردپرس استفاده میکنیم این است که:

  1. با توجه به توضیحاتی که در بالا دادیم، برخی از سایت ها دیدگاه ها را غیرفعال کرده اند و برخی دیگر نیز با دیدگاه های کمی از سوی کاربر مواجه هستند.
  2. این روش بسیار انعطاف پذیر بوده و به راحتی می توانید تعداد مطالبی را که نمایش داده می شوند تغییر دهید و استایل و تغییرات دلخواه خود را به راحتی اعمال کنید.

برای اینکه با نحوه پیاده سازی آن آشنا شوید، تنها کافی است دو گام زیر را طی کنید.


گام اول: شمارش بازدیدها


برای انجام این کار کافی است کد زیر را به فایل functions.php قالب سایت خود اضافه کنید:

توجه: قبل از ویرایش فایل های قالب سایت خود بهتر است از سایت خود بکاپ تهیه کنید تا در صورت بروز مشکل، بتوانید آن را بازگردانی کنید.

 

function shapeSpace_popular_posts($post_id) {
$count_key = 'popular_posts';
$count = get_post_meta($post_id, $count_key, true);
if ($count == '') {
$count = 0;
delete_post_meta($post_id, $count_key);
add_post_meta($post_id, $count_key, '0');
} else {
$count++;
update_post_meta($post_id, $count_key, $count);
}
}
function shapeSpace_track_posts($post_id) {
if (!is_single()) return;
if (empty($post_id)) {
global $post;
$post_id = $post->ID;
}
shapeSpace_popular_posts($post_id);
}
add_action('wp_head', 'shapeSpace_track_posts');

 

کد بالا شامل دو تابع است. اولین تابع وظیفه بررسی و تنظیم شمارش بازدیدها برای هر پست را بر عهده دارد. دومین تابع از wp_head استفاده کرده و تابع اول را هر وقت که مطلبی بارگذاری شود، فراخوانی می کند.

برای آشنایی بیشتر با نحوه کارکرد توابع بالا، می توانید از منابع آموزشی زیر استفاده کنید:

 


گام دوم: نمایش مطالب محبوب در سایت وردپرس


حالا که کدهای مربوط به شمارش بازدیدها برای هر مطلب را اضافه کرده اید، به محض اینکه بازدیدکنندگان صفحات سایت شما را بارگذاری کنند، فیلد popular_posts مربوط به هر مطلب با داده مربوط به بازدید آن اشغال خواهد شد.

راه های زیادی برای فراخوانی این اطلاعات و نمایش آنها وجود دارد، اما بهترین راه استفاده از WP_Query است چرا که میتوانید حلقه دلخواه خود را ایجاد کنید.

برای مثال، کدی که به این طریق ایجاد شده و می توانید از آن برای نمایش مطالب محبوب در سایت وردپرس خود استفاده کنید:

<h3>مطالب محبوب سایت</h3>
<ul>
<?php $popular = new WP_Query(array('posts_per_page'=>7, 'meta_key'=>'popular_posts', 'orderby'=>'meta_value_num', 'order'=>'DESC'));
while ($popular->have_posts()) : $popular->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_postdata(); ?>
</ul>

 

از کد بالا می توانید در هر جایی از سایت خود که میخواهید این مطلب نمایش داده شوند استفاده کنید. معمولا این کد را در داخل sidebar.php قرار می دهند، چرا که سایدبار در تمام صفحات نمایش داده می شود.

 


سفارشی سازی


کار تمام شده و به راحتی با این روش توانستید مطالب محبوب سایت خود را نمایش دهید. اگر تصمیم دارید که تغییراتی در نحوه نمایش مطالب ایجاد کنید، باید به نکات گفته شده در زیر توجه کنید:

  • برای تغییر تعداد مطالبی که نمایش داده می شوند با مقدار ۷ را در ‘posts_per_page’=>7 تغییر دهید.
  • برای تغییر در نحوه نمایش مطالب و نمایش آنها به صورت نزولی می توانید از ‘order’=>’DESC’ و برای نمایش مطالب به صورت صعودی از ‘order’=>’ASC’ استفاده کنید.
  • اگر همچنان اصرار به استفاده از معیار تعداد دیدگاه ها برای نمایش لیست خود دارید، می توانید مقدار ‘orderby’=>’meta_value_num’ را به ‘orderby’=>’comment_count’ تغییر دهید.

برای تغییر عنوان، استایل و تغییر در کدهای HTML هم که نیاز به کار خاصی ندارید و به راحتی می توانید این کارها را انجام دهید.

 

 


هدیه ما به شما


شاید دوست داشته باشید تا بخشی را در سایت خود ایجاد کرده و تمام مطالب سایت خود را در آن بر اساس میزان محبوبیت نمایش دهید. برای این کار کافی است کد زیر را به فایل functions.php قالب سایت خود اضافه کنید:

توجه: قبل از ویرایش فایل های قالب سایت خود بهتر است از سایت خود بکاپ تهیه کنید تا در صورت بروز مشکل، بتوانید آن را بازگردانی کنید.

 

function shapeSpace_display_popular_posts($query) {

$get_pop = (isset($_GET['popular-posts']) && !empty($_GET['popular-posts'])) ? true : false;

if ($get_pop && is_main_query() && !is_admin()) {
$query->set('meta_key', 'popular_posts');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'DESC');

add_action('loop_start' , 'shapeSpace_before_loop');
}
}
add_action('pre_get_posts', 'shapeSpace_display_popular_posts');

function shapeSpace_before_loop() {
echo '<h3>مطالب محبوب سایت</h3>';
}

 

کد بالا تمام مطالب سایت شما را بر اساس تعداد بازدید در صفحه ای جداگانه نمایش می دهد. همانند کدی که قبل تر ارائه شد، در این کد نیز می توانید سفارشی سازی های دلخواه خود را انجام دهید.

خب بعد از اینکه کد بالا را به سایت خود اضافه کردید، برای نمایش صفحه مذکور، کافی است عبارت زیر را به آخر آدرس سایت خود اضافه کرده و آن را در نوار آدرس مرورگر وارد کنید:

/?popular-posts=display

 

امیدواریم این مقاله مورد توجه شما عزیزان قرار گرفته باشد، در صورتیکه سوالی در رابطه با نمایش مطالب محبوب در وردپرس بدون استفاده از افزونه داشتید، می توانید آن را در قسمت دیدگاه ها مطرح کنید تا در اسرع وقت توسط تیم پشتیبانی پاسخ داده شود.

ارسال پاسخ