سنگینی افزونه wp-postviews

amir1909

تازه وارد
سلام و خسته نباشید

من قبلا از افزونه پر قدرت wp-postviews برای آمار بازدیدهای هر پست استفاده میکردم تا اینکه مدیریت سرور اشتراکی من سایتمو ساسپند کرد و گفت خیلی منابع استفاده میکنی.منم با افزونه P3 - Plugin Performance Profiler چک کردم دیدم جلالی و این افزونه بســـــــــــــــــــــیار فضا گرفتن و مجبور شدم wp-postviews رو پاک کنم چون جلالی رو نمیشه کاریش کرد

حالا بعد از یک هفته اصلا شور و اشتیاق پست دادن رو از دست دادم چون واقعا معلوم نیست چند تا بازدید داره و ....

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

 

rocki3oy

کاربر عضو
سلام و خسته نباشیدمن قبلا از افزونه پر قدرت wp-postviews برای آمار بازدیدهای هر پست استفاده میکردم تا اینکه مدیریت سرور اشتراکی من سایتمو ساسپند کرد و گفت خیلی منابع استفاده میکنی.منم با افزونه P3 - Plugin Performance Profiler چک کردم دیدم جلالی و این افزونه بســـــــــــــــــــــیار فضا گرفتن و مجبور شدم wp-postviews رو پاک کنم چون جلالی رو نمیشه کاریش کرد

حالا بعد از یک هفته اصلا شور و اشتیاق پست دادن رو از دست دادم چون واقعا معلوم نیست چند تا بازدید داره و ....

راهی نداره بشه فقط توی ادمین تعداد بازدید پست رو دید !
برای اینکه از شر افزونه راحت بشوید :

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


کد:
<?php
function getPostViews($postID){
    $count_key = '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 "بدون بازدید";
    }
    return $count.' بازدید';
}

// function to count views.
function setPostViews($postID) {
    $count_key = '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);
    }
}
?>
خب ما دستور رو اضافه کردیم حالا در single.php و … که میخواهید تعداد بازدید نمایش داده شود کد زیر را قرار دهید :

1


کد:
<?php setPostViews(get_the_ID()); ?><?php echo getPostViews(get_the_ID()); ?>
توجه کنید که حتما کد بالا را در داخل حلقه مطلب قرار دهید .

خب کار ما به پایان رسید … به همین سادگی به همین جذابی !!!

اما یه کار اضافی هست که اگر بخواهید توی wp-admin بازدید مطالب خود را ببینید میتوانید کد زیر را به functions.php خود بیفزائید و بازدید مطالب خود را از قسمت “نوشته / همه نوشته ها” ببینید :


کد:
<?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'] = __('بازدید');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
    if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}
 ?>
ویرایش : لطفن کدهای خودتون رو داخل تگ بزارید تا مرتب باشه

ممنون

 
آخرین ویرایش توسط مدیر:

amir1909

تازه وارد
ببخشید دوباره پست رو بالا میارم

جسارتا اگه نخوام بازدیدکنندها تعداد بازدیدکنندگان رو ببینن باید چیکار کنم

آیا افزونه یا کدی هست که فقط مدیر بتونه توی بخش همه نوشته*های ادمین تعداد بازدیدرو ببینه؟

 

kasraa

کاربر عضو
سلام

کد :


کد:
<?php setPostViews(get_the_ID()); ?><?php echo getPostViews(get_the_ID()); ?>
که دوستمون داد رو در single یا ... نزارید

 

alihesari

کاربر عضو
برای اینکه از شر افزونه راحت بشوید :ابتدا کد زیر را به functions.php خود بیفزائید (لطفا قبلش یه بک آپ از فانکشن خود بگیرید ):


کد:
<?php
function getPostViews($postID){
    $count_key = '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 "بدون بازدید";
    }
    return $count.' بازدید';
}

// function to count views.
function setPostViews($postID) {
    $count_key = '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);
    }
}
?>
خب ما دستور رو اضافه کردیم حالا در single.php و … که میخواهید تعداد بازدید نمایش داده شود کد زیر را قرار دهید :

1


کد:
<?php setPostViews(get_the_ID()); ?><?php echo getPostViews(get_the_ID()); ?>
توجه کنید که حتما کد بالا را در داخل حلقه مطلب قرار دهید .

خب کار ما به پایان رسید … به همین سادگی به همین جذابی !!!

اما یه کار اضافی هست که اگر بخواهید توی wp-admin بازدید مطالب خود را ببینید میتوانید کد زیر را به functions.php خود بیفزائید و بازدید مطالب خود را از قسمت “نوشته / همه نوشته ها” ببینید :


کد:
<?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'] = __('بازدید');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
    if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}
 ?>
دوستان من از کد بالا استفاده میکنم ولی یه مشکلی داره اینه که هر بار که از یک صفحه بازدید بشه و یا صفحه reload بشه به تعداد بازدید تمامی پست های اون صفحه یکی اضافه میشه. من میخوام وقتی کاربر بر روی ادامه مطلب کلیک کرد به تعداد بازدید اون پست یکی اضافه بشه.

لطفا ابتدا اگه کد سراغ دارین منتشر کنید و در انتها اگه کدی نیس افزونه ای که این کار رو انجام بده

پیشنهاد بدید؟

 

MahdiY

راهبر انجمن
کد:
<?php setPostViews(get_the_ID()); ?>
این کد را فقط در فایل تک نوشت خودتون استفاده کنید . فقط و فقط در فایل تک نوشت (single.php)


کد:
<?php echo getPostViews(get_the_ID()); ?>
و این کد را هر جا که دوست دارید تعداد بازدید نمایش داده بشه . در این مورد هیچ محدودیتی ندارید

جز اینکه هر دو تابع بالا را باید در حلقه وردپرس قرار دهید

 

alihesari

کاربر عضو
کد:
<?php setPostViews(get_the_ID()); ?>
این کد را فقط در فایل تک نوشت خودتون استفاده کنید . فقط و فقط در فایل تک نوشت (single.php)


کد:
<?php echo getPostViews(get_the_ID()); ?>
و این کد را هر جا که دوست دارید تعداد بازدید نمایش داده بشه . در این مورد هیچ محدودیتی ندارید

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

 

MahdiY

راهبر انجمن
بله امکانش هست

این مبحث خیلی ساده و پیچیده هست!

سورس فایل تک نوشت (single.php)

و فایل صفحه اصلی (index.php) رو برام پیام خصوصی کن تا برات کد ها را بگذارم تو قالب

و یه چیز دیگه منظور شما از کاربری چیه ؟ کاربر عضو شده یا هر کاربری ؟

 

alihesari

کاربر عضو
پ.خ شد.

منظور همه بازدید کنندگانه ............ تشکر فراوان

:53:

 

MahdiY

راهبر انجمن
قالب تصحیح و برای شما ارسال شد

میخوام یه آموزش ساده بدم

امیدوارم همه متوجه شوند

فرض کنید شما هیچ تغییراتی در قالب خودتون ندادید


کد:
 <?php echo getPostViews(get_the_ID()); ?>
این تابع را در هر دو فایل صفحه اصلی و ادامه مطلب قرار بدید

این تابع تعداد بازدید را نمایش میدهد

حالا شما تابع زیر را فقط به فایل ادامه مطلب sngle.php اضافه کنید


کد:
 <?php setPostViews(get_the_ID()); ?>
این تابع بازدید را ثبت میکنه

 
بالا