什麼是 WordPress 的自定義欄位?

對於 WordPress 的一篇文章,有很多元素:標題、內容、作者、文章型別、狀態、時間等等。然而這些元素有時候遠遠不夠,比如我希望給每篇文章附加一個值:訪問次數。那我們就可以透過給文章附加一個元素來實現,這個元素至少得有三個值:所屬文章,元素名稱,值。這個元素就是自定義欄位了。在 WordPress 中,自定義欄位儲存在資料庫的_postmeta 表中,在資料表中總共有 4 個屬性分別是:meta_id-欄位 ID,post_id-所屬文章,meta_key-欄位名稱,meta_value-值。欄位 ID 基本無用,只是在資料庫中儲存需要,後面三個值,前面已經說了,一個附加元素至少需要這三個值。不過我們說的自定義欄位應該是隻主題作者或者管理員為文章新增的,WordPress 預設的欄位就不要算上了。

WordPress 的自定義欄位用的很多,比如用自定義欄位實現 seo 功能:為每篇文章新增一個 title 欄位、新增關鍵字欄位、新增描述資訊欄位,為商品新增圖片或者附加資訊,總之自定義欄位的拓展功能很強,要想建一個高階一點的站點,使用自定義欄位必不可少。

一般的我們只需要在文章或頁面的編輯頁面上方的顯示選項裡面勾選自定義欄目即可:

點選後即可看到文章邊界頁面的編輯器下面有自定義欄目版塊,

你可以透過上面的面板來為文章新增自定義欄位。

自定義欄位的操作

對自定義欄位的主要操作有四種:新增、更新 (修改) 、刪除、獲取 (值) 。

1 、首先自定義欄位的新增函式,改函式可以為文章往資料庫中新增一個欄位:

  1. <?php   
  2. add_post_meta($post_id$meta_key$meta_value$unique);   
  3. //$post_id--文章 id   
  4. //$meta_key--欄位名稱   
  5. //$meta_value--值   
  6. //$unique--(布林值、可選) 欄位是否唯一,如果設定為 true,那麼新增欄位的時候如果這個欄位已經存在了,就不會再新增   
  7. ?>   

2 、自定義欄位的更新函式,該函式可以更新一個已經存在的欄位:

  1. <?php   
  2. update_post_meta($post_id$meta_key$meta_value$prev_value);   
  3. //$post_id--文章 id   
  4. //$meta_key--欄位名稱   
  5. //$meta_value--新的值   
  6. //$prev_value--(可選) 以前的值,如果這個欄位有幾個,那麼只會更新匹配的這個值   
  7. ?>   

3 、自定義欄位的刪除函式,該函式可以刪除一個已經存在的欄位:

  1. <?php   
  2. delete_post_meta($post_id$meta_key$meta_value);   
  3. //$post_id--文章 id   
  4. //$meta_key--欄位名稱   
  5. //$meta_value--(可選) 要刪除的值,要刪除特定值的欄位,對於欄位不唯一來說有意義,如果這個引數留空,那麼所有這個欄位名稱的欄位都會被刪除   
  6. ?>  

4 、自定義欄位值的獲取函式,該函式用於獲取一個已經存在的欄位的值:

  1. <?php   
  2. $meta_values = get_post_meta($post_id$key$single);   
  3. //$post_id--文章 id   
  4. //$key--欄位名稱   
  5. //$single--(布林值、可選) 如果設定為 true,對於存在多個相同的欄位,這個函式也只會返回一個唯一的值。如果設定為 false 或者留空,那麼會返回一個陣列   
  6. ?>  

關於自定義欄位的基礎使用,可參考前面的教程:
無外掛實現瀏覽次數統計
使用自定義欄位新增關鍵詞和描述資訊