wordpress如何不用外掛實現文章閱讀數

藏色散人
發布: 2021-03-19 17:15:55
轉載
2584 人瀏覽過

以下由WordPress教學專欄為大家介紹wordpress不用外掛實現文章閱讀數的方法,希望對需要的朋友有幫助!

wordpress如何不用外掛實現文章閱讀數

一、想法

一開始想到應該有什麼插件能實現,搜尋了下,排第一的是文章瀏覽量計數器(Post Views Counter)

在安裝插件之前,想了下,能否自己實現?畢竟動手折騰下,是會有收穫的。

在搜尋之前,我想到的是在wp_post表加個字段,然後在文章打開的時候,把資料存起來,這樣就能持久保存文章閱讀數了。
但wordpress使用php寫的,mysql加字段,對前端的我來說,還是比較耗時間的。例如用php怎麼操作資料庫,怎麼用php加欄位?估計最少半天甚至一天的時間,才能完成。

有沒有更簡單的辦法?
因為之前折騰過wordpress資料庫,知道大概有哪些表。所以突然想到有個wp_postmeta表。從字面看,應該是可以加個欄位或能從該表入手的。
wordpress如何不用外掛實現文章閱讀數

meta_id是id,post_id是文章id,meta_key和meta_value是文章的鍵值對資訊。

二、wordpress提供的方法

那怎麼操作該張表?
wordpress提供了幾個方法:

add_post_meta($post_id, $meta_key, $meta_value, $unique);
get_post_meta($post_id, $meta_key, $single);
update_post_meta($post_id, $meta_key, $meta_value, $prev_value);
delete_post_meta($post_id, $meta_key, $meta_value);
登入後複製

三、具體程式碼實作

那怎麼用呢?
首先在function.php檔案中新增add和get的函數封裝,然後在template-parts/content-single.php檔案中呼叫。

// function.php
function addPostViews($postId) {
    $key = 'post_views';
    $value = get_post_meta($postId, $key, true);
    if($value == ''){
        $value = 0;
        delete_post_meta($postId, $key);
        add_post_meta($postId, $key, $value);
    }else{
        $value++;
        update_post_meta($postId, $key, $value);
    }
}
function getPostViews($postId){   
    $key = 'post_views';   
    $value = get_post_meta($postId, $key, true);   
    if($value == ''){
    $value = 0;
        delete_post_meta($postId, $key);
        add_post_meta($postId, $key, $value);
        return $value;
    }
    return $value;
}

// template-parts/content-single.php
<p>阅读:<?php  echo getPostViews(get_the_ID()); ?></p>
<?php  addPostViews(get_the_ID()); ?>
登入後複製

以上是wordpress如何不用外掛實現文章閱讀數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!