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

  • جمعه ۲۵ اسفند, ۱۳۹۶
  • ۹۱۵ بازدید
نمایش مطالب با بیشترین بازدید در وردپرس بدون افزونه
به این نوشته امتیاز بدهید

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

جمع آوری آمار بازدید نوشته های وردپرس

پیش از هر چیز برای این که بتوانیم تشخیص دهیم که کدام مطالب وبسایت بازدید بیشتری نسبت به دیگری دارند، می بایست آمار بازدید هر کدام را داشته و جمع آوری کنیم. به این منظور تابع زیر را به انتهای فایل functions.php پوسته وبسایت خود اضافه کنید.

function cc_set_post_views($postID) {

    $count_key = 'cc_post_views_count';

    $count = get_post_meta($postID, $count_key, true);

    if($count==''){

        $count = 0;

        delete_post_meta($postID, $count_key);

        add_post_meta($postID, $count_key, '0');

    }else{

        $count++;

        update_post_meta($postID, $count_key, $count);

    }

}

// برای بدست آوردن آمار دقیق، بهتر است قابلیت های مرتبط با کش را غیر فعال کنیم؛ کد زیر به همین منظور است.

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

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

cc_set_post_views(get_the_ID());

اگر از child-theme برای پوسته خود استفاده می کنید یا می خواهید دردسر قرار دادن کد دوم را نداشته باشید، می توانید کد زیر را دوباره در فایل functions.php قرار دهید.

function cc_track_post_views ($post_id) {

    if ( !is_single() ) return;

    if ( empty ( $post_id) ) {

        global $post;

        $post_id = $post->ID;    

    }

    cc_set_post_views($post_id);

}

add_action( 'wp_head', 'cc_track_post_views');

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

این کد را بعد از قطعه کد اول قرار دهید.

اگر از یک افزونه کش (برای مثال افزونه WP Rocket Cache) استفاده می کنید، این روش به صورت پیشفرض کار نمی کند. بعضی از این افزونه ها قابلیتی به نام Fragmented Caching دارند که با استفاده از آن می توانید از کش شدن بخشی از کد های یک صفحه جلوگیری کنید.

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

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

برای نمونه، اگر میخواهید، تعداد بازدید های یک نوشته خاص را در صفحه خودش به نمایش بگذارید، که معمولا در کنار بخش تعداد دیدگاه ها و… نمایش می دهند، اولین کاری که باید انجام دهید این است که کد زیر را به فایل functions.php پوسته وبسایت خود اضافه کنید.

function cc_get_post_views($postID){
 $count_key = 'cc_post_views_count';
 $count = get_post_meta($postID, $count_key, true);
 if($count==''){
 delete_post_meta($postID, $count_key);
 add_post_meta($postID, $count_key, '0');
 return "0 بازدید";
 }
 return $count.' بازدید';
}

با هر بار صدا زدن تابع بالا در صفحه نوشته خود (single.php) تعداد بازدید های همان نوشته نمایش داده می شود. و برای صدا زدن تابع بالا نیز می بایست از کد زیر در حلقه مربوط به نمایش نوشته در single.php استفاده کنید.

cc_get_post_views(get_the_ID());

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

<?php

$popularpost = new WP_Query( 
 array( 
 'posts_per_page' => 4,
 'meta_key' => 'cc_post_views_count',
 'orderby' => 'meta_value_num',
 'order' => 'DESC'
 ) );
 while ( $popularpost->have_posts() ) : 
 $popularpost->the_post();
 the_title(); 
 
 endwhile; ?>
کد بالا فقط یک نمونه ساده است و تنها عنوان نوشته های با بیشترین بازدید را به ترتیب نزولی نمایش می دهد، این کد را می توانید با استفاده از HTML و CSS به شکلی زیباتر نمایش دهید یا از طریق WP-Query می توانید ساز و کار آن را تغییر دهید.
نمایش مطالب با بیشترین بازدید در وردپرس بدون افزونه
به این نوشته امتیاز بدهید
برای دریافت تازه‌ترین ها به کانال تلگرامی کدفنجونی بپیوندید : cupcode_ir@

دیدگاه خود را در میان بگذارید

@

اگر ربات نیستید به پرسش پاسخ دهید! * Time limit is exhausted. Please reload the CAPTCHA.