在Wordpress中显示IP的帖子命中率

时间:2018-01-22 01:56:46

标签: php wordpress

我使用此代码(与另一个一起显示结果)为每个Wordpress帖子的访问者计数器。

function setAndViewPostViews($postID) {
$count_key = 'views';
$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);
}
return $count;} 

它工作正常,但每次刷新页面时都会计算一次访问次数。

有人可以引导我查看我需要做同样的代码,但只计算一次IP访问或一些技巧,至少让我不让某人不用反复的F5来滥用计数器。

感谢。

2 个答案:

答案 0 :(得分:0)

像@rtfm提到的那样,IP!=人。

但是如果你想要计算访问过的唯一IP,你应该考虑改变$count_key来存储IP,而不是存储计数器。只需使用密钥为IP地址的数组。只要您需要该值,只需执行count($count_key);

不知道wordpress是否允许使用add_post_meta()存储数组,但如果不存在,则可以使用json_encode()json_decode()存储数据。

答案 1 :(得分:0)

您可以通过IP计算访问次数,但这需要保留一个包含IP地址和每个地址计数的大型数组。是的,您可以通过add_post_meta()将其存储在数组中,但数据库大小会快速增长并且性能会下降。

你能做什么 - 只需使用cookies。当新访客来时,增加计数并为他设置无尽的cookie。当他按下F5时,您将看到已经设置了cookie并且不增加计数器。