wordpress-query-generator

با کد زیر شما می توانید بازدید کنندگان خود را مشاهده نمایید:
کد زیر را در فایل functions,php قرار داده سپس در مکان های مورد نظر آن را فراخوانی کنید به طور مثال در فایل single.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 می باشد

setPostViews(get_the_ID()); ?><?php echo getPostViews(get_the_ID()); 

 



روش دیگر

اولین چیزی که ما باید انجام دهیم این است که یک تابع برای نمایش تعداد ارسال ها و ذخیره آن به عنوان یک زمینه سفارشی برای هر پست داشته باشیم. برای این کار، کد زیر را در فایل functions.php پوسته خود  و یا در یک پلاگین سایت خاص بهتر قرار دهید:

function wpb_set_post_views($postID) {
    $count_key = 'wpb_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

 

wpb_set_post_views(get_the_ID());

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

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

 

هنگامی که شما این قرار داده اند، هر بار که یک کاربر پست، زمینه های سفارشی به روز خواهد شد.

اگر شما از یک پلاگین استفاده می کنید چیزی که باید تغییر کند  کد زیر است.

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

 

در حال حاضر، شما می توانید همه نوع چیزها را مانند تعداد نمایش نمایش پست ها انجام دهید، و یا مرتب کردن پست های بازدید.

مثال با استفاده از کد کوتاه کننده یا shortcode

function wpb_set_post_views($postID) {
$count_key = ‘wpb_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);

function wpb_track_post_views ($post_id) {
if ( !is_single() ) return;
if ( empty ( $post_id) ) {
global $post;
$post_id = $post->ID;
}
wpb_set_post_views($post_id);
}
add_action( ‘wp_head’, ‘wpb_track_post_views’);

function wpb_get_post_views($postID){
$count_key = ‘wpb_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’;
}

function wpb_most_viewed_posts() {
// start output buffering
ob_start();
?>
۴, ‘meta_key’ => ‘wpb_post_views_count’, ‘orderby’ => ‘meta_value_num’, ‘order’ => ‘DESC’);

//begin loop
while ($query->have_posts()) : $query->the_post(); ?>

<?php

// Turn off output buffering
$theResult = ob_get_clean();

//Return output
return $theResult;
}
// Create shortcode
add_shortcode('wpb_most_viewed', 'wpb_most_viewed_posts');

//Enable shortcode execution in text widgets
add_filter('widget_text', 'do_shortcode');

 


مثال نمایش مطالبی با  بیشترین بازدید ها 

$most_viewed_posts = new WP_Query(array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'posts_per_page' => 7,
));

if ($most_viewed_posts->have_posts())
            {
            while($most_viewed_posts->have_posts())
            {
            $most_viewed_posts->the_post();

//the loop here 

the_title();

}}

برای اینکه شما آن را در صفحه single.php استفاده کنید از کد زیر می توانید استفاده کنید.کافیست آن را درحلقه نمایش قرار دهید . از setPostViews برای افزایش شمارنده و برای getPostViews برای گرفتن شمارنده استفاده می شود.

<?php setPostViews(get_the_ID()); echo getPostViews(get_the_ID()); ?>

منبع :‌ مردان وردپرس

تاریخ آخرین بروزرسانی : ۲۹ مرداد ۱۳۹۵
میلاد میلادی

باور هایت را که پرورش دهی به هرچیزی دست خواهی یافت.

2نظر برای

نمایش آمار بازدید کنندگان


  1. رحیم

    سلام من از روش دوم استفاده کردم هیچ گونه metakey(wpb_post_views_count) به جدول postmeta اضافه نشد

    • صادق مهدی لو

      با عرض سلام

      لطفا کدهایی که نوشته اید را اینجا قرار دهید تا اطمینان حاصل کنیم که مراحل را درست رفته اید.

ارسال نظر

آدرس الکترونیکی شما نمایش داده نمی شود *

Time limit is exhausted. Please reload CAPTCHA.