国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

WordPress中的shortcode短代碼功能使用詳解

2024-05-04 23:46:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
WordPress中的短代碼能通過(guò)簡(jiǎn)單的函數(shù)集合創(chuàng)建宏代碼來(lái)生成內(nèi)容,方便函數(shù)調(diào)用,下面就讓我們一起來(lái)看一下WordPress中的shortcode短代碼功能使用詳解.
 

WordPress 從 2.5 的版本開始,增加了一個(gè) shortcode (短代碼) API ,類似于 BBS 上的 BBCode , shortcode 也可以很方便的為文章或頁(yè)面增加功能,并且 shortcode 的比起 BBCode 更加靈活和強(qiáng)大。下面 Kayo 為大家介紹一下 shortcode 。

一.shortcode 簡(jiǎn)介
shortcode 可以讓開發(fā)者通過(guò)以函數(shù)的形式創(chuàng)建宏內(nèi)容來(lái)生成內(nèi)容,或許這個(gè)概念看上去有點(diǎn)模糊,但實(shí)際上它是一個(gè)很簡(jiǎn)單而實(shí)用的功能,只要會(huì)編寫基本的 PHP 函數(shù),即可使用 shortcode ,下文會(huì)以實(shí)際的例子來(lái)說(shuō)明 shortcode 的使用方法。

二.shortcode 形式
shortcode 支持封閉標(biāo)簽和自閉(自動(dòng)封閉)標(biāo)簽,并且支持在標(biāo)簽內(nèi)使用參數(shù),至于 shortcode 具體是何種形式,這就決定于開發(fā)者怎樣編寫這個(gè) shortcode 了。

[myshortcode]Some Content[/myshortcode] // 封閉標(biāo)簽[myshortcode] // 自閉標(biāo)簽[myshortcode style="margin: 0px; padding: 0px; line-height: 25.2px; width: 660px; overflow: hidden; clear: both;">		
function myshortcode_function($atts, $content = null){ // $atts 代表了 shortcode 的各個(gè)參數(shù),$content 為標(biāo)簽內(nèi)的內(nèi)容  extract(shortcode_atts(array( // 使用 extract 函數(shù)解析標(biāo)簽內(nèi)的參數(shù) "title" => '標(biāo)題' // 給參數(shù)賦默認(rèn)值,下面直接調(diào)用 $ 加上參數(shù)名輸出參數(shù)值 ), $atts)); // 返回內(nèi)容 return '<div class="myshortcode">    <h3>'. $title .'</h3>    <p>     '. $content .'    </p>   </div>';} add_shortcode("msc", "myshortcode_function"); // 注冊(cè)該 shortcode,以后使用 [msc] 標(biāo)簽調(diào)用該 shortcode

把上面的代碼添加到 functions.php 中,一個(gè)簡(jiǎn)單的 shortcode 便創(chuàng)建好了,我們可以通過(guò) [msc][/msc]標(biāo)簽調(diào)用該 shortcode ,如:

[msc style="margin: 0px; padding: 0px; line-height: 25.2px; width: 660px; overflow: hidden; clear: both;">		
function myshortcode_function($atts, $content = null){ // $atts 代表了 shortcode 的各個(gè)參數(shù),$content 為標(biāo)簽內(nèi)的內(nèi)容  extract(shortcode_atts(array( // 使用 extract 函數(shù)解析標(biāo)簽內(nèi)的參數(shù) "title" => '標(biāo)題' // 給參數(shù)賦默認(rèn)值,下面直接調(diào)用 $ 加上參數(shù)名輸出參數(shù)值 ), $atts)); // 返回內(nèi)容 return '<div class="myshortcode">    <h3>'. $title .'</h3>    <p>     '. $content .'    </p>   </div>';} add_shortcode("msc", "myshortcode_function"); // 注冊(cè)該 shortcode,以后使用 [msc] 標(biāo)簽調(diào)用該 shortcode

msc 即為短代碼名,以后在寫文章或頁(yè)面時(shí)可以直接使用 [msc][/msc] 標(biāo)簽調(diào)用該短代碼,而 "myshortcode_function" 即為例子中的短代碼處理函數(shù)的名稱。下面重點(diǎn)分析短代碼處理函數(shù)。

五.短代碼處理函數(shù)

shortcode 處理函數(shù)是一個(gè) shortcode 的核心, shortcode 處理函數(shù)類似于 Flickr(WordPress 過(guò)濾器),它們都接受特定參數(shù),并返回一定的結(jié)果。 shortcode 處理器接受兩個(gè)參數(shù), $attr 和 $content , $attr 代表 shortcode 的各個(gè)屬性參數(shù),從本質(zhì)上來(lái)說(shuō)是一個(gè)關(guān)聯(lián)數(shù)組,而 $content 代表 shortcode 標(biāo)簽中的內(nèi)容。

如上面的例子,若在文章內(nèi)作出調(diào)用,輸出一段歡迎語(yǔ)句:

[msc style="margin: 0px; padding: 0px; line-height: 25.2px; width: 660px; overflow: hidden; clear: both;">

array( 'title' => '歡迎')

在輸出結(jié)果時(shí),可以直接使用 $參數(shù)名 的形式進(jìn)行輸出,如例子中的情況即以 $title 輸出該屬性值。

六.shortcode_atts

shortcode_atts 是一個(gè)很實(shí)用的函數(shù),它可以為你需要的屬性參數(shù)設(shè)置默認(rèn)值,并且刪除一些不需要的參數(shù)。

shortcode_atts() 包含兩個(gè)參數(shù) $defaults_array 與 $atts , $attr 即為屬性參數(shù)集合, $defaults_array 是代表需要設(shè)置的屬性默認(rèn)值,舉個(gè)例子:

$result = shortcode_atts( array( 'title' => '新標(biāo)題', 'description' => '描述內(nèi)容'), $atts );$attr 依然為array( 'title' => '歡迎')

這時(shí) $result 的結(jié)果為

array( 'title' => '新標(biāo)題', 'description' => '描述標(biāo)題')

'title' 由于在 $defaults_array 有不同的值,因此以這個(gè)新的值為準(zhǔn)更新了 'title' ,同時(shí)也增加了 'description' 這個(gè)值。值得注意的是, shortcode_atts() 會(huì)過(guò)濾 $defaults_array 中沒(méi)有的屬性,假如 $attr 中還有一個(gè) 'ohter' 的屬性,那么 $result 的結(jié)果仍然是上面的結(jié)果,因?yàn)?$defaults_array 中并沒(méi)有 'other' 這個(gè)屬性。當(dāng)然,這里說(shuō)的值只是屬性的默認(rèn)值,真正輸出的值還是 shortcode 調(diào)用時(shí)填寫的值。

七.進(jìn)一步解析屬性與設(shè)置屬性默認(rèn)值

extract() 函數(shù)用于進(jìn)一步解析屬性并設(shè)置屬性默認(rèn)值,其中一個(gè)功能是把各屬性參數(shù)值賦予給一個(gè)形如 "$參數(shù)名" 的變量保存起來(lái)(如例子中的 $title ),方便調(diào)用,使用該函數(shù)配合 shortcode_atts() 就可以很安全的輸出結(jié)果。這點(diǎn)的具體使用可以參見(jiàn)本文第一點(diǎn)“一.函數(shù) add_shortcode”的例子。

另外,屬性名中的大寫字母在傳遞給處理函數(shù)前會(huì)先轉(zhuǎn)化為小寫字母,因此建議在編寫屬性名時(shí)直接使用小寫字母。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
上一篇:XHProf報(bào)告字段含義的解析

下一篇:簡(jiǎn)單理解PHP的面向?qū)ο缶幊谭绞?/a>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 金塔县| 剑阁县| 郧西县| 瓮安县| 布拖县| 南陵县| 吐鲁番市| 盐城市| 于田县| 射洪县| 江口县| 株洲县| 县级市| 高平市| 滨海县| 会昌县| 东乡族自治县| 金沙县| 上虞市| 包头市| 恩平市| 武义县| 苍梧县| 丽水市| 赫章县| 汝州市| 土默特右旗| 苏州市| 惠水县| 临清市| 英德市| 贡山| 兴城市| 高安市| 西乌珠穆沁旗| 武城县| 宁都县| 和林格尔县| 贵定县| 安国市| 安陆市|