【问题标题】:Wordpress: Counter for page views to be inserted in a different pageWordpress:将页面视图插入不同页面的计数器
【发布时间】:2015-08-20 17:25:39
【问题描述】:

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

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

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

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

谢谢!

古兹曼

【问题讨论】:

    标签: wordpress pageviews visitor-statistic


    【解决方案1】:

    如果只有极少数人会访问该页面,您可以在 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 的文档

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      相关资源
      最近更新 更多