
WordPress 插件
In the past we have shown you 如何创建一个受欢迎的帖子选项卡 in WordPress using a plugin. That plugin works great out the box for tabbers. However, we wanted more customization in our layout, so we decided to do it without a plugin. In this article, we will show you how to track and display popular posts by views in WordPress without using any plugins.
过去,我们向您显示如何使用插件在WordPress中创建流行的 Tab Taber 。 该插件可以很好地满足您的使用需求。 但是,我们希望在布局中进行更多自定义,因此我们决定在不使用插件的情况下进行。 在本文中,我们将向您展示如何通过WordPress中的视图跟踪和显示热门帖子,而无需使用任何插件。
下面的屏幕截图显示了我们自定义的热门帖子显示的示例:
下面的屏幕截图显示了我们自定义的热门帖子显示的示例:

First thing we need to do is create a function that will detect post views count and store it as a custom field for each post. To do this, paste the following codes in your theme’s functions.php file or better in a 特定于站点的插件:
我们需要做的第一件事是创建一个函数,该函数将检测帖子查看次数并将其存储为每个帖子的自定义字段。 为此,请将以下代码粘贴到主题的functions.php文件中,或者将其粘贴在具体的于在网站的插件中 :
function wpb_set_post_views($postID) {
$count_key = 'wpb_post_views_count';
$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);
}
}
//To keep the count accurate, lets get rid of prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
现在您已经有了这个函数,我们需要在单个帖子页面上调用这个函数。这样,该函数就可以准确地知道哪个帖子获得了浏览量。为此,您需要将以下代码粘贴到单个后循环中:
现在您已经有了这个函数,我们需要在单个帖子页面上调用这个函数。这样,该函数就可以准确地知道哪个帖子获得了该视图的认可。为此,您需要将以下代码粘贴到单个发布循环中:
wpb_set_post_views(get_the_ID());
如果您使用子主题或者您只是想让事情变得简单,那么您应该使用 wp_head 钩子将跟踪器添加到标题中。因此,将以下代码粘贴到主题的functions.php文件或特定于站点的插件中:
如果您使用子主题或只是想让自己更轻松,您可以使用 wp_head 挂钩将跟踪器添加到标题中。因此,将以下代码粘贴到主题的functions.php文件或特定于站点的插件中:
function wpb_track_post_views ($post_id) {
if ( !is_single() ) return;
if ( empty ( $post_id) ) {
global $post;
$post_id = $post->ID;
}
wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');
放置此字段后,每次用户访问该帖子时,自定义字段都会更新。
放置此内容后,自定义字段将在用户每次访问该帖子时更新。
注意:如果您使用缓存插件,则默认情况下此技术将不起作用。我们使用的是 W3 Total Cache,它具有称为碎片缓存的功能。您可以使用它来使这项工作正常进行。以下是需要更改的内容:
注意:如果您使用缓存插件,则默认情况下此技术将不起作用。我们使用的是 W3 Total Cache,它有一个称为分段缓存的功能。您可以使用它来完成这项工作。这是需要改变的:
<!-- mfunc wpb_set_post_views($post_id); --><!-- /mfunc -->
现在,您可以执行各种很酷的操作,例如显示帖子浏览次数或按浏览次数对帖子进行排序。让我们看看如何做一些很酷的事情。
现在,您可以执行各种有趣的操作,例如显示帖子浏览次数,或按浏览次数对帖子进行排序。让我们看看如何做一些很酷的事情。
如果您想在单个帖子页面上显示帖子查看计数(通常在评论计数或其他内容旁边)。然后您需要做的第一件事就是在主题的functions.php 文件或特定于站点的插件中添加以下内容。
如果您想在单个帖子页面上显示帖子浏览量(通常在评论数或其他内容旁边)。然后,您需要做的第一件事就是在主题的functions.php 文件或特定于站点的插件中添加以下内容。
function wpb_get_post_views($postID){
$count_key = 'wpb_post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count.' Views';
}
然后在后循环中添加以下代码:
然后在发布循环中添加以下代码:
wpb_get_post_views(get_the_ID());
如果您想按查看次数对帖子进行排序,则可以使用 wp_query post_meta 参数轻松完成此操作。最基本的循环查询示例如下所示:
如果您想按查看次数对帖子进行排序,可以使用 wp_query post_meta 参数轻松实现。最基本的循环查询示例如下所示:
<?php
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
the_title();
endwhile;
?>
To add other WP_Query parameters such as time range, refer to the Codex 上的 WP_Query 页面.
要添加其他WP_Query参数(例如时间范围),请参阅法典上的WP_查询页面 。
我们希望您喜欢这篇文章。
希望您喜欢这篇文章。
WordPress 插件