Wordpress发布视图计数两次

Wordpress发布视图计数两次,wordpress,post,view,count,Wordpress,Post,View,Count,我创建了后视图功能。但我有个问题。我的函数在每次页面刷新时计数两次。0,2,4,6,8... 先谢谢你 My functions.php function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $co

我创建了后视图功能。但我有个问题。我的函数在每次页面刷新时计数两次。0,2,4,6,8... 先谢谢你

My 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());
    }
}
My 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循环了两次。My be it可以帮助你们。

在您的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(),在循环查询结束时重置所有查询

谢谢你的回答。我两个都试过了,但还是不起作用。我创建了如下自定义css:wp\u add\u inline\u样式($handle,$custom\u css);此行导致出错。请使用此标记wp_reset_query()在循环查询结束时重置所有查询;