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

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

 

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

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

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

 

function wintheme_set_post_views($postID) {
    $count_key = 'wintheme_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 اضافه کنید (برای مثال، بالای عنوان پست):

wintheme_set_post_views(get_the_ID());

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

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

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

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

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

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

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

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

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

function wintheme_get_post_views($postID){
    $count_key = 'wintheme_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 مطالب خود قرار دهید (برای مثال، زیر عنوان پست):

wintheme_get_post_views(get_the_ID());

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

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

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

<ul>
<?php 
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wintheme_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>

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

مطالب مرتبط

Doorway Page چیست؟

Doorway Page چیست؟

در ابتدا قصد داریم قبل از اینکه راجع به مفهوم Doorway Page صحبت کنیم به طور جداگانه لغات آن را بررسی کنیم. بدون شک میدانید که کلمه Door در زبان فارسی به معنای درب، دروازه و ورودی می‌باشد و کلمه Way نیز به معنای مسیر و راه است. بنابراین طبق توضیحات داده شده به طور […]

بررسی انواع ریدایرکت ها و تاثیر آن بر سئو | ریدایرکت چیست؟

بررسی انواع ریدایرکت ها و تاثیر آن بر سئو | ریدایرکت چیست؟

خیلی از اوقات ممکن است بخواهید در سایت خود صفحه ای را حذف کنید یا نوع آدرس دهی سایتتان را تغییر دهید، در این موارد، ابزاری به نام ریدایرکت می تواند کمک بسیار زیادی به شما کند. شما با استفاده از ریدایرکت می توانید صفحه حذف شده را روی آدرس جدید منتقل کنید تا با […]

پست مهمان (Guest Post) چیست؟

پست مهمان (Guest Post) چیست؟

پست مهمان (Guest post) چیست؟ | در نوشتن پست مهمان چه نکاتی مهم است؟ اگر صاحب یک سایت هستید و با سئو کمی آشنایی داشته باشید، احتمالا می دانید که بک لینک اهمیت زیادی در اعتبار صفحات سایت دارد و می تواند به بهبود رتبه شما کمک زیادی کند. روش های مختلفی برای دریافت بک […]

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

محصولات ویژه