Wordpress发布视图计数两次
我创建了后视图功能。但我有个问题。我的函数在每次页面刷新时计数两次。0,2,4,6,8... 先谢谢你 My functions.phpWordpress发布视图计数两次,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
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()在循环查询结束时重置所有查询;