Wordpress:用于将页面视图插入不同页面的计数器

时间:2015-08-20 17:25:39

标签: wordpress pageviews visitor-statistic

我一直在寻找wordpress中的插件,允许我在不同的页面中插入一个页面视图计数器:我会解释;

第A页中,我有一个联系表格投票给视频(这是一个视频比赛)。此联系表单会向选民发送一封电子邮件,其中包含指向第B页的链接,以便他们可以通过此方式验证其电子邮件。每次访问B页都将被视为投票。

问题是,我想计算访问第B页的次数,以便在第A页中显示它(以显示视频旁边的投票数量) )。

看起来很简单,但我找不到一个简单的方法来做到这一点。你认为你可以帮助我吗?

谢谢!

古兹曼

1 个答案:

答案 0 :(得分:0)

如果只有极少数人访问该页面,您只需在WordPress中存储一个值并每次都添加到该页面。如果您希望页面上有很多用户,则可能需要更复杂的方法。

对于流量较轻的网页,如果某些访问可能无法计算,您可以利用post meta并只存储一个计数器变量。如果两个人同时查看页面,他们可以获得计数器变量的相同值,因此他们不会正确地增加变量。

您可以将其添加到相关页面的模板中:

$vcount = get_post_meta($post->ID, "view_counter");
add_post_meta($post->ID, "view_counter", $vcount+1, true);

因此访问该页面的两个人最终会得到相同的$ vcount变量。要显示计数,您只需要将保存元数据的帖子的帖子ID:print get_post_meta(<POSTIDHERE>, "view_counter", true);

如果您需要一个更强大的解决方案,您需要为每个访问者存储一个唯一值,然后报告您将计算值并显示它的总数。因此,您可以将访问者的IP地址存储为多值元:

add_post_meta($post->ID, "view_counter", $_SERVER['REMOTE_ADDR'], false);

然后要显示计数,您需要计算使用view_counter键存储的后置元数值的数量:

$ips = get_post_meta(<POSTIDHERE>, "view_counter", false);
$views = count($ips);
print "Total views: $views";

这只是一个示例解决方案,您应该检查IP是否已经存在并考虑限制单个IP。如果你有一个小的共享服务器,你也可能冒险填充你的数据库,除非你写了一些额外的代码来防止它被滥用,因为它在每个页面视图上向你的数据库添加数据。如果您启用了任何类型的缓存,这将无法正常工作。

根据您用于联系表单的插件,您还可以通过直接查询数据库来报告联系表单的提交次数。

有关详细信息,请参阅add_post_metaget_post_meta

的文档

(免责声明,从内存和文档编写的代码,未经测试)