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

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

 

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

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

پس کد زیر را به فایل 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>

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

مطالب مرتبط

تفاوت UI و UX در طراحی سایت چیست؟

تفاوت UI و UX در طراحی سایت چیست؟

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

رپورتاژ آگهی چیست؟

رپورتاژ آگهی چیست؟

شاید تاکنون عنوان رپورتاژ آگهی را شنیده باشید و برایتان سؤال شده باشد که رپورتاژ آگهی چیست و منظور از رپورتاژ آگهی، محتوای ویدئویی است یا محتوای متنی و یا محتوای صوتی؟ اکثر شرکت ها سعی دارند با به کار گرفتن مطالب و موضوعاتی در زمینه روابط عمومی و همکاری از طریق فضای مجازی، سایت […]

Doorway Page چیست؟

Doorway Page چیست؟

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

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

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

محصولات ویژه