计算类别视图--这是可能的吗?

时间:2019-02-07 作者:bpy

我想展示我浏览次数最多的类别(如“WP-PostViews“”插件)。

我已经做了一些研究,但我没有发现任何关于这方面的东西。这让我觉得这是不可能的,因为某些原因,我想知道更多关于它。。。

2 个回复
SO网友:Lucien Dubois

Wordpress不会在数据库中记录访问统计信息。如果要显示访问量最大的类别,则必须在某处记录统计信息。

为什么会有插件来满足这种需求呢。

当然,您可以编写自己的代码来记录数据库中的访问。This 这将是一个很好的起点。

SO网友:Krzysiek Dróżdż

正如Lucien所写,WordPress默认情况下不会记录任何统计数据。但是

你可以很容易地自己做这件事。如果您只想计算总视图数,那么您甚至可以使用术语meta来存储该数字。下面是计算视图数的代码:

function my_count_views() {
    if ( is_category() ) {
        $views = intval( get_term_meta( get_queried_object_id(), \'category_views\', true ) );
        update_term_meta( get_queried_object_id(), \'category_views\', $views + 1 );
    }
}
add_action( \'template_redirect\', \'my_count_views\' );
所以这个使用template_redirect 挂钩,如果WP即将显示类别存档,那么它将category_views 将当前类别中的元字段增加1,并将其另存为元。

只有一个问题-这种计算视图的方法非常简单。您将获得许多糟糕的视图(机器人程序等),如果您在站点上使用任何缓存,结果将不真实。

So can you do it? Yes, you can. But should you?

不,你不应该。在你自己的数据库中存储统计数据效率很低,如果你的网站有很多视图,这会导致很多问题。

那么我该怎么做呢?我会使用Google Analytics和它的API来获取访问次数。

相关推荐

WP_DROPDOWN_CATEGORIES-如何在Widget中保存?

我想用wp_dropdown_categories 在自定义小部件中。所有内容都显示得很好,但由于某些原因,无法正确保存。这是form() 和update() 小部件的功能-我做错什么了吗?public function form( $instance ) { /* Set up some default widget settings. */ $defaults = array( \'title\' => \'Classes by Category\' );&#x