WordPress開發(fā)中短代碼的實(shí)現(xiàn)及相關(guān)函數(shù)使用技巧
其實(shí)實(shí)現(xiàn)短代碼很簡單,我們只需要用到 WordPress 里面的一個(gè)函數(shù)就可以搞定短代碼,外加自己的一個(gè)小函數(shù),可以讓短代碼實(shí)現(xiàn)的輕松加愉快。
短代碼實(shí)現(xiàn)原理
就像往 WP 一些動作里加鉤子和過濾函數(shù)一樣,
短代碼只是經(jīng)過封裝了的針對文章輸出內(nèi)容的過濾器而已,
沒有像有一些主題功能說的那么震撼、那么高深。
下面來一個(gè)簡單例子:
function myName() {//短代碼要處理的函數(shù) return "My name's XiangZi !"; } //掛載短代碼 //xz為短代碼名稱 //即你在編輯文章時(shí)輸入[xz]就會執(zhí)行 myName 函數(shù) add_shortcode('xz', 'myName');
那么我們在文章中輸入[xz]就會得到
My name's XiangZi !
短代碼傳參
更高深一點(diǎn)的利用,我將會在后面的文章中講到,
今天只講一下,短代碼的傳參機(jī)制
高級一點(diǎn)的例子
function myName($array,$content) { var_dump($array); var_dump($content); } add_shortcode('xz', 'myName');
編輯文章時(shí)我們輸入:
[xz a="1" b="2" c="3"]這里是三個(gè)參數(shù)哦[/xz]
在函數(shù)中我們將得到:
//$array 是一個(gè)數(shù)組, //大體結(jié)構(gòu)如下 $array = array('a'=>'1','b'=>'2','c'=>'3'); //$content 是一個(gè)字符串 $content = '這里是三個(gè)參數(shù)哦';
shortcode_atts
不是因?yàn)楦愣檀a插件,我也不會用到這個(gè)函數(shù),
shortcode_atts 函數(shù)主要是用來設(shè)置短代碼中截獲變量的初始值。
這是一個(gè)很實(shí)用的函數(shù),其實(shí)這個(gè)函數(shù)的真正是作用在數(shù)組上得,
因?yàn)槲覀儚亩檀a中截獲的參數(shù)都是數(shù)組形式的。
shortcode_atts 函數(shù)詳解
不要被函數(shù)名所疑惑,在 WordPress 里主要是用于設(shè)置短代碼參數(shù)的默認(rèn)值,
如果我們將代碼提取出來,用在別的地方,該函數(shù)可以幫我們設(shè)置一個(gè)既得數(shù)組的默認(rèn)值。
shortcode_atts 函數(shù)使用
這個(gè)函數(shù)使用起來很簡單。
shortcode_atts(array( "url" => 'http://PangBu.Com' ), $url)
以上代碼的意思是,
將 $url 數(shù)組 鍵值為url的成員默認(rèn)值設(shè)定為'http://PangBu.Com',
別的地方用處似乎不多,但對于一些超級懶人,有時(shí)候攬到總是忘記或是懶得設(shè)定數(shù)組的數(shù)值時(shí),這個(gè)函數(shù)超好用。
shortcode_atts 函數(shù)聲明
/** * Combine user attributes with known attributes and fill in defaults when needed. * * The pairs should be considered to be all of the attributes which are * supported by the caller and given as a list. The returned attributes will * only contain the attributes in the $pairs list. * * If the $atts list has unsupported attributes, then they will be ignored and * removed from the final returned list. * * @since 2.5 * * @param array $pairs Entire list of supported attributes and their defaults. * @param array $atts User defined attributes in shortcode tag. * @return array Combined and filtered attribute list. */ function shortcode_atts($pairs, $atts) { $atts = (array)$atts; $out = array(); foreach($pairs as $name => $default) { if ( array_key_exists($name, $atts) ) $out[$name] = $atts[$name]; else $out[$name] = $default; } return $out; }
相關(guān)文章
PHP+Apache環(huán)境中如何隱藏Apache版本
以PHP+Apache服務(wù)器環(huán)境為例,給大家講解如何能夠隱藏Apache的版本號以及具體做法。2017-11-11WordPress中Gravatar頭像緩存到本地及相關(guān)優(yōu)化的技巧
這篇文章主要介紹了WordPress中Gravatar頭像緩存到本地及優(yōu)化的技巧,需要的朋友可以參考下2015-12-12晉城吧對DiscuzX進(jìn)行的前端優(yōu)化要點(diǎn)
晉城吧的服務(wù)器在美國,延遲相對國內(nèi)略微要高一些,所以優(yōu)化就顯得非常重要。2010-09-09PHP數(shù)組與字符串互相轉(zhuǎn)換實(shí)例
在本篇文章里小編給大家分享的是關(guān)于PHP數(shù)組與字符串互相轉(zhuǎn)換實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-05-05PHP計(jì)算2點(diǎn)經(jīng)緯度之間的距離代碼
以下是對PHP計(jì)算2點(diǎn)經(jīng)緯度之間的距離代碼進(jìn)行了分析介紹,需要的朋友可以過來參考下2013-08-08