WordPress 文章显示阅读量(PHP代码)
您是否正在寻找一种方法来跟踪帖子阅读而无需使用post meta的插件?虽然可能有一个插件,我们已经创建了一个快速的代码片段,您可以使用它来跟踪帖子阅读而无需使用WordPress中的post meta插件。
说明:(原文地址 https://www.isitwp.com/track-post-views-without-a-plugin-using-post-meta/)
将此代码添加到主题的functions.php文件或特定于站点的插件中:
说明:(原文地址 https://www.isitwp.com/track-post-views-without-a-plugin-using-post-meta/)
将此代码添加到主题的functions.php文件或特定于站点的插件中:
function getPostViews($postID){
$count_key = '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';
}
function setPostViews($postID) {
$count_key = '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);
}
}
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
(可选)将此代码添加到WordPress管理员中显示帖子阅读的列:
// Add to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['post_views'] = __('Views');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}
这部分跟踪阅读代码将设置帖子阅读。只需将此代码放在WordPress循环内的single.php文件中即可。
<?php
setPostViews(get_the_ID());
?>
关于片段缓存的注意事项:如果您正在使用像W3 Total Cache这样的缓存插件,则上面设置阅读的方法将无效,因为该setPostViews()
函数永远不会运行。但是,W3 Total Cache具有称为片段缓存的功能。而不是上述内容,请使用以下内容,以便setPostViews()
运行得很好,即使启用了缓存,也会跟踪所有帖子阅读。
<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->
以下代码是可选的。如果要显示帖子中的观看次数,请使用此代码(想在哪显示就将此代码添加至哪)。将此代码放在循环中。
<?php
echo getPostViews(get_the_ID());
?>
注意:如果这是您第一次在WordPress中添加代码段,请参阅我们的指南,了解如何在WordPress中正确复制/粘贴代码段,这样您就不会意外破坏您的站点。
734 Views