《PHP編程:WordPress中編寫自定義存儲(chǔ)字段的相關(guān)PHP函數(shù)解析》要點(diǎn):
本文介紹了PHP編程:WordPress中編寫自定義存儲(chǔ)字段的相關(guān)PHP函數(shù)解析,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP教程WordPress 的自定義字段就是文章的 meta 信息(元信息),利用這個(gè)功能,可以擴(kuò)展文章的功能,是學(xué)習(xí) WordPress 插件開(kāi)發(fā)和主題深度開(kāi)發(fā)的必備知識(shí),便利給文章儲(chǔ)存一些額外的自定義內(nèi)容.
PHP教程自界說(shuō)字段不光給插件開(kāi)發(fā)者使用,WordPress 的特色圖像、自界說(shuō)頁(yè)面模板等功能的信息都儲(chǔ)存在自界說(shuō)字段的表單里邊.
PHP教程在文章編輯器界面的 “自定義欄目” 板塊可以管理除了名字開(kāi)頭是 “_” 的字段(沒(méi)有 “自定義欄目” 板塊請(qǐng)?jiān)谟疑辖堑?“顯示選項(xiàng)” 開(kāi)啟),所以很多 WordPress 本身使用的自定義字段無(wú)法在此管理.
存儲(chǔ)原理
PHP教程自定義字段非常靈活,首先來(lái)說(shuō)一下它的儲(chǔ)存原理和為什么這么靈活.數(shù)據(jù)庫(kù)中,儲(chǔ)存文章的 wp_posts 表單,只有默認(rèn)的 20 個(gè)項(xiàng)目,用于儲(chǔ)存必需的文章信息.
PHP教程
PHP教程而存儲(chǔ)自定義字段的 wp_postmeta 表,卻只有四個(gè)項(xiàng)目,分別是 meta_id(自定義字段的 ID)、post_id(自定義字段屬于的文章的 ID)、meta_key(自定義字段的名字)和 meta_value(自定義字段的值),一般我們只必要注意 meta_key 和 meta_value 兩個(gè)項(xiàng)目即可.
PHP教程正是因?yàn)檫@樣,每篇文章都可以有相同名字但不同值的自定義字段,并且可以有無(wú)限個(gè)自定義字段,任何的插件和主題都可以利用自定義字段對(duì)文章信息進(jìn)行擴(kuò)展.
PHP教程一篇文章的自界說(shuō)字段的名字是可以重復(fù)的.
PHP教程添加字段
PHP教程自定義字段可以在文章編纂頁(yè)面操作,但本文主要寫關(guān)于開(kāi)發(fā)的事情.
PHP教程
PHP教程添加自界說(shuō)字段,可以使用 add_post_meta() 函數(shù):
PHP教程
add_post_meta( $post_id, $meta_key, $meta_value, $unique );
PHP教程參數(shù):
PHP教程$post_id
PHP教程(整數(shù))(必需)添加自定義字段的文章的 ID.
PHP教程默認(rèn)值:None
PHP教程$meta_key
PHP教程(字符串)(必需)自定義字段的名稱.
PHP教程默認(rèn)值:None
PHP教程$meta_value
PHP教程(混合)(必需)自定義字段的值.
PHP教程默認(rèn)值:None
PHP教程$unique
PHP教程(布爾)(可選)如果已經(jīng)有相同名字的字段,是否重復(fù)添加.True 允許;False 不允許.
PHP教程默認(rèn)值:False
PHP教程更新字段
PHP教程要更新一個(gè)字段的值,可以使用 update_post_meta() 函數(shù):
PHP教程
update_post_meta( $post_id, $meta_key, $meta_value, $prev_value );
PHP教程參數(shù):
PHP教程$post_id
PHP教程(整數(shù))(必需)更新自定義字段的文章的 ID.
PHP教程默認(rèn)值:None
PHP教程$meta_key
PHP教程(字符串)(必需)更新的自定義字段的名稱.
PHP教程默認(rèn)值:None
PHP教程$meta_value
PHP教程(混合)(必需)更新的自定義字段的值.
PHP教程默認(rèn)值:None
PHP教程$prev_value
PHP教程(混合)(可選)此參數(shù)只有在一篇文章有多個(gè)相同名稱的自定義字段時(shí)才有用.如果留空,則更新所有同名的字段,不然則更新和此參數(shù)值相同的值的字段.
PHP教程默認(rèn)值:空字符串
PHP教程獲取字段
PHP教程獲取字段可以使用 get_post_meta() 函數(shù):
PHP教程
get_post_meta( $post_id, $key, $single );
PHP教程參數(shù):
PHP教程$post_id
PHP教程(整數(shù))(必需)要獲取字段的文章 ID,如果在循環(huán)中,可以使用 get_the_ID() 來(lái)設(shè)置.
PHP教程默認(rèn)值:None
PHP教程$key
PHP教程(字符串)(可選)要獲取的字段的名稱.
PHP教程默認(rèn)值:None
PHP教程$single
PHP教程(布爾)(可選)如果為 True 則返回一個(gè)字符串;如果為 False 則返回?cái)?shù)組,且相同鍵值的自定義字段的值會(huì)依照添加順序組合成一個(gè)序列數(shù)組.
PHP教程默認(rèn)值:False
PHP教程例子
PHP教程下邊是一個(gè)瀏覽統(tǒng)計(jì)的簡(jiǎn)單例子:
PHP教程
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' );
PHP教程
function Bing_get_views(){
global $post;
$views = number_format( (int) get_post_meta( $post->ID, 'views', true ) );
return $views;
}
PHP教程不可見(jiàn)的自定義字段
雖然在數(shù)據(jù)庫(kù)里存在很多 WordPress 本身創(chuàng)建的自定義字段,但是在文章編輯器的 “自定義欄目” 里卻并沒(méi)有顯示(沒(méi)有 “自定義欄目” 板塊請(qǐng)?jiān)谟疑辖堑?“顯示選項(xiàng)” 開(kāi)啟),比如特色圖像、自定義頁(yè)面模板和評(píng)論是否開(kāi)啟等等.
PHP教程如果仔細(xì)觀察,會(huì)發(fā)現(xiàn)這些自定義字段的名字都是以下劃線 “_” 開(kāi)頭的,所以說(shuō),以下劃線 “_” 開(kāi)頭的自定義字段并不會(huì)顯示給用戶,the_meta() 函數(shù)也不會(huì)輸出,對(duì)用戶來(lái)說(shuō)是暗藏的.
PHP教程
PHP教程利用這個(gè)特性,我們可以把不想讓用戶隨便修改的字段、會(huì)讓用戶感到困惑的字段,好比已經(jīng)提供設(shè)置界面的設(shè)置選項(xiàng)、緩存數(shù)據(jù)等等,以免出現(xiàn)錯(cuò)誤.
PHP教程下邊是一個(gè)小例子:
PHP教程
add_post_meta( get_the_ID(), '_time_diff', time() );
PHP教程另外,如果自界說(shuō)字段儲(chǔ)存的內(nèi)容是數(shù)組即使名字前邊不是下劃線 “_” 也不會(huì)顯示.
《PHP編程:WordPress中編寫自定義存儲(chǔ)字段的相關(guān)PHP函數(shù)解析》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP編程:WordPress中編寫自定義存儲(chǔ)字段的相關(guān)PHP函數(shù)解析》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/8144.html