Wordpress帖子浏览量计算两次

时间:2017-08-19 15:52:34

标签: wordpress post view count

我创建了帖子后视图功能。但我有一个问题。我的功能每页刷新两次。 0,2,4,6,8 ...提前谢谢你。

我的functions.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 "0 View";
    }
    return $count;
}

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);
    }
}


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'] = 'Views';
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
 if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}

我的single.php:

get_header();
if(function_exists('getPostViews')) { echo getPostViews(get_the_ID()); }

while ( have_posts() ) : the_post();

if(function_exists('setPostViews')) { setPostViews(get_the_ID()); }      

the_content(); 

endwhile;

get_footer();

我认为我的single.php循环两次。我帮助你们。

1 个答案:

答案 0 :(得分:1)

在functions.php中添加此行,以消除预取添加额外视图的问题

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

同时确保header.php中不存在此行。由于未设置路径,Chrome实际上会尝试再次点击同一页面以获取快捷方式图标。

<link rel="shortcut icon" href="" />

另一种解决方案

在这些循环查询结束时重置所有查询,使用此标记wp_reset_query();