برای استعلام یا ارسال سفارش اینجا کلیک کنید.

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

 wordpress-post-views نمایش بازدید مطالب وردپرس بدون افزونه

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

دریافت و ذخیره سازی بازدید مطالب

در ابتدا باید تابعی تعریف کنیم که مقدار بازدید هر پست را دریافت و ذخیره سازی کند.

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

function vebeet_set_post_views($postID) {
    $count_key = 'vebeet_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);
    }
}
//To keep the count accurate, lets get rid of prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

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

برای این کار، کد زیر را در Loop مطالب خود در فایل single.php اضافه کنید (برای مثال، بالای عنوان پست):

vebeet_set_post_views(get_the_ID());

اگر از Child Theme استفاده می‌کنید و یا می‌خواهید کار را برای خودتان آسان‌تر کنید، برای ست کردن بازدید هر پست می‌توانید از طریق هوک wp_head این کار را انجام دهید.

پس قطعه کد زیر را به functions.php اضافه کنید:

function vebeet_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    vebeet_set_post_views($post_id);
}
add_action( 'wp_head', 'vebeet_track_post_views');

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

نکته: اگر از افزونه‌های کش استفاده می‌کنید، این تکنیک در حالت پیش‌فرض کار نخواهد کرد. در پلاگین W3 Total Cache قابلیتی به نام Fragmented Caching وجود دارد که با استفاده از آن و تغییر کد بالا به صورت زیر، مشکل رفع می‌شود:

<!-- mfunc vebeet_set_post_views($post_id); --><!-- /mfunc -->

کار ذخیره سازی بازدید هر پست تمام است! حالا می‌توانید کارهای مختلفی نظیر نمایش بازدید مطالب و مرتب سازی پست‌ها بر اساس بازدید را انجام دهید.

نمایش بازدید هر پست

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

function vebeet_get_post_views($postID){
    $count_key = 'vebeet_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 View";
    }
    return $count.' Views';
}

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

برای این کار، کد زیر را در Loop مطالب خود قرار دهید (برای مثال، زیر عنوان پست):

vebeet_get_post_views(get_the_ID());

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

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

متدوال‌ترین مثال، نمایش پربازدیدترین مطالب سایت است که با قرار دادن کد زیر در محل نمایش مورد نظر (مثلا سایدبار)، قابل انجام است:

<ul>
<?php 
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'vebeet_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC'  ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
?>
   <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
?>
</ul>

امیدواریم که از این آموزش لذت برده باشید.

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

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده اید و با آن موافق هستید.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

آخرین نمونه کار ها مشاهده همه

آخرین طرح های اختصاصی اجرا شده