每次在Chrome中访问wordpress页面时,页面视图计数增加2

时间:2014-04-11 00:08:52

标签: wordpress google-chrome count

我有一个简单的函数,每次用户访问页面时都应该在wp_postmeta表中为页面视图添加1。问题是在chrome中,每次访问页面时,数字会增加2。我最初是在分类页面上完成的,每次访问时这个数字实际上增加了4。我使用的代码如下,来自http://wpsnipp.com/index.php/functions-php/track-post-views-without-a-plugin-using-post-meta/

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.' 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);
    }
}
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

2 个答案:

答案 0 :(得分:2)

事实证明,问题实际上是没有设置路径的快捷方式图标。由于没有设置路径,Chrome实际上会尝试再次点击同一页面以获取快捷方式图标。以下行是我的header.php文件中的问题:

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

删除此行可解决问题。

答案 1 :(得分:0)

您需要在循环外添加getPostViews(get_the_ID());并在循环内添加setPostViews(get_the_ID());以获得实际计数。

参见下面的代码块,我用了二十四个主题:

<?php 
    echo getPostViews(get_the_ID()); 

    // Start the Loop.
    while ( have_posts() ) : the_post();

        setPostViews(get_the_ID());

        // Include the page content template.
        get_template_part( 'content', 'page' );

    endwhile;
?>