no-img
اِمیلا

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

بروزرسانی؛
23 مارس 2020

تعداد پست های مشاهده شده برای هر پست از ابزاری است که جذابیت مطلب را بازدیدکنندگان دو چندان می کند، و اکنون می خواهید بدانید که چگونه انجام می شود؟

آیا می خواهید بدانید چند بار یک پست خاص دیده شده است و همچنین می خواهید نتیجه را به بینندگان خود نشان دهید؟

در این آموزش از emila به شما گام به گام نشان می دهیم که چگونه می توانید تعداد کل نمایش های یک پست خاص را بدون استفاده از هر افزونه نمایش دهید.

دور روش عمده وجود دارد: 1 و 2

1- (روش اول)

این یک فرایند سه مرحله ای است و انجام آن بسیار آسان است.

مرحله اول:

این کد ها را از بلوک زیر در فایل function.php تم خود اضافه کنید. این  کد قالب شما را برای ارتقاء این قابلیت، پیکربندی می کند.

<?php
function set_post_views( $postID ) 
{
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        // delete old 'post_views_count' value.
        delete_post_meta( $postID, $count_key );
        // add new 'post_views_count' value.
        add_post_meta( $postID, $count_key, '0' );
    } else {
        $count++;
        // update old 'post_views_count' value.
        update_post_meta( $postID, $count_key, $count );
    }
}

function get_post_views( $postID )
{
    $count_key = 'post_views_count';
    $count = get_post_meta( $postID, $count_key, true );
    if($count=='') {
        // delete old 'post_views_count' value.
        delete_post_meta( $postID, $count_key );
        // add new 'post_views_count' value.
        add_post_meta( $postID, $count_key, '0' );

        return "0 بازديد";
    }

    return $count.' بازديد';
}
?>

این کد نظرات را هنگامی که فردی پست را می بیند، شمارش می کند و بین بازدیدکنندگان تبعیض قائل نیست.

مرحله دوم:

حالا خط زیر را در فایل single.php خود در حلقه اضافه کنید. کد زیر نمایش ها را پیگیری می کند و دیدگاه های هر پست را تنظیم می کند.

<?php setPostViews (get_the_ID ())؛ ?>

دقت کنید که تابع بالا حتما باید درون حلقه مطالب وردپرس قرار گیرد، به چه صورت؟! سوال خوبیست… به مثال زیر دقت کنید.

<?php if(have_posts()) : while(have_posts()) : the_post(); set_post_views (get_the_ID()); ?>

دقت کنید کد در مثال بالا بعد از while(have_posts()) : the_post(); تابع <?php setPostViews (get_the_ID ())؛ ?> در داخل لوپ قرار گرفته.

شما نیز در فایل single.php به دنبال عبارت while(have_posts()) : the_post(); بگردید و تابع را مانند مثال کنار آن جایگذاری کنید.

مرحله سوم:

حالا در آخرین مرحله از خط کد زیر استفاده کنید که در آن شما می خواهید شماره نمایش داخل حلقه را نمایش دهید. این کد شماره مشاهده پست را از آخرین مرحله که در آن شما با استفاده از تابع تنظیم شده برای ردیابی نمایش پست ها استفاده کردید را نشان می دهد. در فایل‌هایی همچون index, archive, search و… استفاده نمایید.

<?php echo get_post_views (get_the_ID()); ?>

لازم به ذکر است عملکرد صحیح این دستور نیز مستلزم قرارگیری آن در حلقه ی مطالب وردپرس است، مانند زیر:

get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
// شروع حلقه
<?php?>
<?php while ( have_posts() ) : the_post(); ?>
بازدید: <?php echo setAndViewPostViews(get_the_ID());  ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php twentythirteen_post_nav(); ?>
<?php comments_template(); ?>
<?php endwhile; ?>
// پایان حلقه
</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

در نوار پایین همین مطلب که کد به خوبی آمار بازدید پست به خوبی مشخص است.

گام اضافی ، مرحله چهارم:

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

add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['post_views'] = __('view');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}
?>

2- (روش دوم)

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

function setAndViewPostViews($postID) {
    $count_key = 'views';
    $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);
    }
   return $count;  
}

و بعد برای نمایش بازدید پست کد زیر رو در داخل حلقه نمایش پست ها در single.php بزارید :

بازدید : <?php echo setAndViewPostViews(get_the_ID()); ?> مرتبه

امیدوارم که این مقاله مفید واقع شده باشد. 😊

لینک کوتاه : https://emila.ir/?p=13590
سلام علیکم!
فرم گزارش را به دقت تکمیل نمایید...
از همکاری شما پیشاپیش سپاسگذاریم