-1

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

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

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

这看起来很简单,但我找不到一个简单的方法来做到这一点。你觉得你能帮我吗?

谢谢!

古兹曼

4

1 回答 1

0

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

对于流量较少的页面,有可能无法计算某些访问的风险,您可以利用发布元数据并简单地存储一个计数器变量。如果两个人同时查看该页面,他们可以获得相同的计数器变量值,因此他们不会正确地增加该变量。

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

$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的文档

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

于 2015-08-20T18:15:02.350 回答