如何不用wordpress插件显示文章浏览统计功能
- 行业动态
- 2024-04-19
- 1
要在不使用WordPress插件的情况下显示文章浏览统计功能,您需要手动实现跟踪访问者并存储这些数据的过程,以下是详细的技术步骤:
1、创建数据库表
您需要在您的数据库中创建一个新表来存储每篇文章的浏览量,您可以使用MySQL语句创建一个名为post_views的新表,其中包含post_id和views两个字段。
CREATE TABLE post_views ( post_id BIGINT UNSIGNED NOT NULL, views INT UNSIGNED NOT NULL, PRIMARY KEY (post_id) );
2、跟踪文章访问
接下来,您需要在主题的single.php文件中添加代码来更新文章的浏览量,在循环开始的地方,添加以下PHP代码:
global $wpdb; $post_id = get_the_ID(); $table_name = $wpdb>prefix . 'post_views'; if ($wpdb>get_row("SELECT * FROM $table_name WHERE post_id = $post_id")) { $wpdb>update($table_name, array('views' => 'views+1'), array('post_id' => $post_id)); } else { $wpdb>insert($table_name, array('post_id' => $post_id, 'views' => 1)); }
这段代码首先获取当前文章的ID,然后检查post_views表中是否已经有该文章的记录,如果有,就更新浏览量;如果没有,就插入新记录。
3、显示文章浏览量
要显示文章的浏览量,您可以在single.php文件的合适位置添加以下代码:
global $wpdb; $post_id = get_the_ID(); $table_name = $wpdb>prefix . 'post_views'; $view_count = $wpdb>get_var("SELECT views FROM $table_name WHERE post_id = $post_id"); echo '<div >浏览次数: ' . $view_count . '</div>';
这段代码首先获取当前文章的ID,然后从post_views表中查询浏览量,并将其显示在页面上。
4、优化性能
由于我们直接操作数据库来获取和更新浏览量,这可能会对网站的性能产生一定影响,为了减少数据库查询的次数,您可以使用缓存来存储文章的浏览量,您可以使用WordPress的transients功能来缓存浏览量:
// 获取文章浏览量 function get_post_views($post_id) { $transient_key = 'post_views_' . $post_id; if (false === ($views = get_transient($transient_key))) { global $wpdb; $table_name = $wpdb>prefix . 'post_views'; $views = $wpdb>get_var("SELECT views FROM $table_name WHERE post_id = $post_id"); set_transient($transient_key, $views, HOUR_IN_SECONDS); } return $views; } // 更新文章浏览量 function update_post_views($post_id) { global $wpdb; $table_name = $wpdb>prefix . 'post_views'; $wpdb>update($table_name, array('views' => 'views+1'), array('post_id' => $post_id)); delete_transient('post_views_' . $post_id); }
然后在single.php文件中使用这些函数来获取和更新浏览量:
$post_id = get_the_ID(); update_post_views($post_id); $view_count = get_post_views($post_id); echo '<div >浏览次数: ' . $view_count . '</div>';
通过这种方式,您可以在不使用插件的情况下实现文章浏览统计功能,请注意,这种方法需要一定的PHP和MySQL知识,如果您不熟悉这些技术,建议使用现成的插件来实现这个功能。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/314008.html