最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WordPress中編寫自定義存儲(chǔ)字段的相關(guān)PHP函數(shù)解析

 更新時(shí)間:2015年12月25日 14:34:37   作者:斌果  
這篇文章主要介紹了WordPress中編寫自定義字段的相關(guān)PHP函數(shù)解析,包括對(duì)不可見的自定義字段的相關(guān)介紹,需要的朋友可以參考下

WordPress 的自定義字段就是文章的 meta 信息(元信息),利用這個(gè)功能,可以擴(kuò)展文章的功能,是學(xué)習(xí) WordPress 插件開發(fā)和主題深度開發(fā)的必備知識(shí),方便給文章儲(chǔ)存一些額外的自定義內(nèi)容。

自定義字段不光給插件開發(fā)者使用,WordPress 的特色圖像、自定義頁面模板等功能的信息都儲(chǔ)存在自定義字段的表單里邊。

在文章編輯器界面的 “自定義欄目” 板塊可以管理除了名字開頭是 “_” 的字段(沒有 “自定義欄目” 板塊請(qǐng)?jiān)谟疑辖堑?“顯示選項(xiàng)” 開啟),所以很多 WordPress 自己使用的自定義字段無法在此管理。
存儲(chǔ)原理

自定義字段非常靈活,首先來說一下它的儲(chǔ)存原理和為什么這么靈活。數(shù)據(jù)庫(kù)中,儲(chǔ)存文章的 wp_posts 表單,只有默認(rèn)的 20 個(gè)項(xiàng)目,用于儲(chǔ)存必須的文章信息。

20151225143034327.png (332×620)

而存儲(chǔ)自定義字段的 wp_postmeta 表,卻只有四個(gè)項(xiàng)目,分別是 meta_id(自定義字段的 ID)、post_id(自定義字段屬于的文章的 ID)、meta_key(自定義字段的名字)和 meta_value(自定義字段的值),一般我們只需要注意 meta_key 和 meta_value 兩個(gè)項(xiàng)目即可。

正是因?yàn)檫@樣,每篇文章都可以有相同名字但不同值的自定義字段,而且可以有無限個(gè)自定義字段,任何的插件和主題都可以利用自定義字段對(duì)文章信息進(jìn)行擴(kuò)展。

一篇文章的自定義字段的名字是可以重復(fù)的。

添加字段

自定義字段可以在文章編輯頁面操作,但本文主要寫關(guān)于開發(fā)的事情。

20151225143103462.png (832×428)

添加自定義字段,可以使用 add_post_meta() 函數(shù):

add_post_meta( $post_id, $meta_key, $meta_value, $unique );

參數(shù):

$post_id

(整數(shù))(必須)添加自定義字段的文章的 ID.

默認(rèn)值:None

$meta_key

(字符串)(必須)自定義字段的名稱。

默認(rèn)值:None

$meta_value

(混合)(必須)自定義字段的值。

默認(rèn)值:None

$unique

(布爾)(可選)如果已經(jīng)有相同名字的字段,是否重復(fù)添加。True 允許;False 不允許。

默認(rèn)值:False

更新字段

要更新一個(gè)字段的值,可以使用 update_post_meta() 函數(shù):

update_post_meta( $post_id, $meta_key, $meta_value, $prev_value );

參數(shù):

$post_id

(整數(shù))(必須)更新自定義字段的文章的 ID.

默認(rèn)值:None

$meta_key

(字符串)(必須)更新的自定義字段的名稱。

默認(rèn)值:None

$meta_value

(混合)(必須)更新的自定義字段的值。

默認(rèn)值:None

$prev_value

(混合)(可選)此參數(shù)只有在一篇文章有多個(gè)相同名稱的自定義字段時(shí)才有用。如果留空,則更新所有同名的字段,否則則更新和此參數(shù)值相同的值的字段。

默認(rèn)值:空字符串

獲取字段

獲取字段可以使用 get_post_meta() 函數(shù):

get_post_meta( $post_id, $key, $single );

參數(shù):

$post_id

(整數(shù))(必須)要獲取字段的文章 ID,如果在循環(huán)中,可以使用 get_the_ID() 來設(shè)置。

默認(rèn)值:None

$key

(字符串)(可選)要獲取的字段的名稱。

默認(rèn)值:None

$single

(布爾)(可選)如果為 True 則返回一個(gè)字符串;如果為 False 則返回?cái)?shù)組,且相同鍵值的自定義字段的值會(huì)按照添加順序組合成一個(gè)序列數(shù)組。

默認(rèn)值:False

例子

下邊是一個(gè)瀏覽統(tǒng)計(jì)的簡(jiǎn)單例子:

function Bing_statistics_visitors( $cache = false ){
  if( !is_singular() ) return;
  global $post;
  $id = $post->ID;
  if( get_post( $id )->post_status != 'publish' ) return;
  $post_views = (int) get_post_meta( $id, 'views', true );
  update_post_meta( $id, 'views', ( $post_views + 1 ) ) || add_post_meta( $id, 'views', 1, true );
}
add_action( 'wp_head', 'Bing_statistics_visitors' );
獲取計(jì)數(shù):
function Bing_get_views(){
  global $post;
  $views = number_format( (int) get_post_meta( $post->ID, 'views', true ) );
  return $views;
}

不可見的自定義字段
雖然在數(shù)據(jù)庫(kù)里存在很多 WordPress 自己創(chuàng)建的自定義字段,但是在文章編輯器的 “自定義欄目” 里卻并沒有顯示(沒有 “自定義欄目” 板塊請(qǐng)?jiān)谟疑辖堑?“顯示選項(xiàng)” 開啟),比如特色圖像、自定義頁面模板和評(píng)論是否開啟等等。

如果仔細(xì)觀察,會(huì)發(fā)現(xiàn)這些自定義字段的名字都是以下劃線 “_” 開頭的,所以說,以下劃線 “_” 開頭的自定義字段并不會(huì)顯示給用戶,the_meta() 函數(shù)也不會(huì)輸出,對(duì)用戶來說是隱藏的。

20151225143222855.png (827×410)

利用這個(gè)特性,我們可以把不想讓用戶隨便修改的字段、會(huì)讓用戶感到困惑的字段,比如已經(jīng)提供設(shè)置界面的設(shè)置選項(xiàng)、緩存數(shù)據(jù)等等,以免出現(xiàn)錯(cuò)誤。

下邊是一個(gè)小例子:

add_post_meta( get_the_ID(), '_time_diff', time() );

另外,如果自定義字段儲(chǔ)存的內(nèi)容是數(shù)組即使名字前邊不是下劃線 “_” 也不會(huì)顯示。

相關(guān)文章

  • 基于PHP實(shí)現(xiàn)堆排序原理及實(shí)例詳解

    基于PHP實(shí)現(xiàn)堆排序原理及實(shí)例詳解

    這篇文章主要介紹了基于PHP實(shí)現(xiàn)堆排序原理及實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • PHP使用array_merge重新排列數(shù)組下標(biāo)的方法

    PHP使用array_merge重新排列數(shù)組下標(biāo)的方法

    這篇文章主要介紹了PHP使用array_merge重新排列數(shù)組下標(biāo)的方法,以實(shí)例形式較為詳細(xì)的分析了array_merge的功能,及針對(duì)數(shù)組下標(biāo)進(jìn)行重新排列操作的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-07-07
  • php實(shí)現(xiàn)事件監(jiān)聽與觸發(fā)的方法

    php實(shí)現(xiàn)事件監(jiān)聽與觸發(fā)的方法

    這篇文章主要介紹了php實(shí)現(xiàn)事件監(jiān)聽與觸發(fā)的方法,可實(shí)現(xiàn)時(shí)間的綁定、觸發(fā)與注銷等功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • php解決約瑟夫環(huán)算法實(shí)例分析

    php解決約瑟夫環(huán)算法實(shí)例分析

    這篇文章主要介紹了php解決約瑟夫環(huán)算法,結(jié)合實(shí)例形式分析了約瑟夫環(huán)問題的原理、解決方法及相關(guān)算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-09-09
  • PHP源代碼數(shù)組統(tǒng)計(jì)count分析

    PHP源代碼數(shù)組統(tǒng)計(jì)count分析

    偶然在百度知道中看到有個(gè)同學(xué)問起count及strlen的效率問題,好吧這個(gè)問題我當(dāng)初沒理解透徹,認(rèn)為其不屬兩個(gè)不一樣的東西不可比較,后來看了樓主的回復(fù)才反應(yīng)過來,所以自己也去找了下源碼查看下?,F(xiàn)在總結(jié)下查看到的結(jié)果并記錄之。
    2011-08-08
  • PHP基于imagick擴(kuò)展實(shí)現(xiàn)合成圖片的兩種方法【附imagick擴(kuò)展下載】

    PHP基于imagick擴(kuò)展實(shí)現(xiàn)合成圖片的兩種方法【附imagick擴(kuò)展下載】

    這篇文章主要介紹了PHP基于imagick擴(kuò)展實(shí)現(xiàn)合成圖片的兩種方法,結(jié)合實(shí)例形式分析了php使用imagick擴(kuò)展進(jìn)行圖片合并的具體操作方法與相關(guān)實(shí)現(xiàn)技巧,并附帶imagick擴(kuò)展下載地址與配置方法,需要的朋友可以參考下
    2017-11-11
  • 遭遇php的in_array低性能問題

    遭遇php的in_array低性能問題

    PHP的性能一直在提高。然而,若是用的不恰當(dāng),或是一個(gè)不留神,還是可能會(huì)踩到PHP內(nèi)部實(shí)現(xiàn)方面的坑的。我在前幾天的一個(gè)性能問題上就碰到了
    2013-09-09
  • php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法

    php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法

    這篇文章主要介紹了php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法,以實(shí)例形式較為詳細(xì)的分析了Socket的創(chuàng)建、連接、初始化及監(jiān)聽等技巧,需要的朋友可以參考下
    2015-01-01
  • php5編程中的異常處理詳細(xì)方法介紹

    php5編程中的異常處理詳細(xì)方法介紹

    比較詳細(xì)的關(guān)于php5的異常處理方法,而且給出了,多種方法
    2008-07-07
  • PHP重定向的3種方式

    PHP重定向的3種方式

    本文介紹了“PHP重定向的3種方式”,需要的朋友可以參考一下
    2013-03-03

最新評(píng)論

富川| 永泰县| 阜宁县| 金门县| 睢宁县| 凉城县| 嘉黎县| 辉县市| 镇沅| 万年县| 海兴县| 九龙坡区| 鹤庆县| 通城县| 江华| 昭平县| 徐水县| 津市市| 班玛县| 多伦县| 东台市| 柳江县| 文山县| 柳河县| 合肥市| 樟树市| 保山市| 桦川县| 绥芬河市| 浦县| 鄂伦春自治旗| 巍山| 海阳市| 孟津县| 陆丰市| 加查县| 时尚| 江达县| 江孜县| 陆丰市| 通许县|