当前位置:首页 > 行业动态 > 正文

如何不用wordpress插件显示文章浏览统计功能

要在不使用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知识,如果您不熟悉这些技术,建议使用现成的插件来实现这个功能。

0