WordPress 從 2.5 的版本開始,增加了一個 shortcode (短代碼) API ,類似于 BBS 上的 BBCode , shortcode 也可以很方便的為文章或頁面增加功能,并且 shortcode 的比起 BBCode 更加靈活和強大。下面 Kayo 為大家介紹一下 shortcode 。
一.shortcode 簡介
shortcode 可以讓開發者通過以函數的形式創建宏內容來生成內容,或許這個概念看上去有點模糊,但實際上它是一個很簡單而實用的功能,只要會編寫基本的 PHP 函數,即可使用 shortcode ,下文會以實際的例子來說明 shortcode 的使用方法。
二.shortcode 形式
shortcode 支持封閉標簽和自閉(自動封閉)標簽,并且支持在標簽內使用參數,至于 shortcode 具體是何種形式,這就決定于開發者怎樣編寫這個 shortcode 了。
1
2
3
4
5
|
[myshortcode]Some Content[/myshortcode]
[myshortcode]
[myshortcode id="codetool">
三.shortcode 例子
在使用 shortcode 前,首先必須在主題的 functions.php 文件中定義 shortcode ,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
function myshortcode_function($atts, $content = null ){
extract(shortcode_atts(array(
"title" => '標題'
), $atts));
return '<div class="myshortcode">
<h3>' . $title . '</h3>
<p>
' . $content . '
</p>
</div>' ;
}
add_shortcode( "msc" , "myshortcode_function" );
|
把上面的代碼添加到 functions.php 中,一個簡單的 shortcode 便創建好了,我們可以通過 [msc][/msc]標簽調用該 shortcode ,如:
1
|
在文章或頁面內容中輸入上面的調用,可以在相應的位置輸出一段歡迎語句,在 style.css 中定義相應的 CSS ,即可為短代碼賦予樣式。
Kayo 簡略的介紹了 WordPress 的短代碼(shortcode) 功能,主要是介紹了 shortcode 的主要概念和使用方法。在本文中, Kayo 將會更加詳細的介紹一下 shortcode 中較為重要的 API ,希望有助于各位開發較為復雜的 shortcode 。
四.函數 add_shortcode
該函數用于注冊一個 shortcode ,它有兩個參數:短代碼名與 shortcode 處理函數名,引用上文的例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
function myshortcode_function( $atts , $content = null){
extract(shortcode_atts( array (
"title" => '標題'
), $atts ));
return '<div class = "myshortcode" >
<h3> '. $title .' </h3>
<p>
'. $content .'
</p>
</div>';
}
add_shortcode( "msc" , "myshortcode_function" );
|
msc 即為短代碼名,以后在寫文章或頁面時可以直接使用 [msc][/msc] 標簽調用該短代碼,而 "myshortcode_function" 即為例子中的短代碼處理函數的名稱。下面重點分析短代碼處理函數。
五.短代碼處理函數
shortcode 處理函數是一個 shortcode 的核心, shortcode 處理函數類似于 Flickr(WordPress 過濾器),它們都接受特定參數,并返回一定的結果。 shortcode 處理器接受兩個參數, $attr 和 $content , $attr 代表 shortcode 的各個屬性參數,從本質上來說是一個關聯數組,而 $content 代表 shortcode 標簽中的內容。
如上面的例子,若在文章內作出調用,輸出一段歡迎語句:
[msc php" id="highlighter_111994">
在輸出結果時,可以直接使用 $參數名 的形式進行輸出,如例子中的情況即以 $title 輸出該屬性值。
六.shortcode_atts
shortcode_atts 是一個很實用的函數,它可以為你需要的屬性參數設置默認值,并且刪除一些不需要的參數。
shortcode_atts() 包含兩個參數 $defaults_array 與 $atts , $attr 即為屬性參數集合, $defaults_array 是代表需要設置的屬性默認值,舉個例子:
1
2
3
4
5
6
7
|
$result = shortcode_atts( array (
'title' => '新標題' ,
'description' => '描述內容'
), $atts );
$attr 依然為
array ( 'title' => '歡迎' )
|
這時 $result 的結果為
1
|
array ( 'title' => '新標題' , 'description' => '描述標題' )
|
'title' 由于在 $defaults_array 有不同的值,因此以這個新的值為準更新了 'title' ,同時也增加了 'description' 這個值。值得注意的是, shortcode_atts() 會過濾 $defaults_array 中沒有的屬性,假如 $attr 中還有一個 'ohter' 的屬性,那么 $result 的結果仍然是上面的結果,因為 $defaults_array 中并沒有 'other' 這個屬性。當然,這里說的值只是屬性的默認值,真正輸出的值還是 shortcode 調用時填寫的值。
七.進一步解析屬性與設置屬性默認值
extract() 函數用于進一步解析屬性并設置屬性默認值,其中一個功能是把各屬性參數值賦予給一個形如 "$參數名" 的變量保存起來(如例子中的 $title ),方便調用,使用該函數配合 shortcode_atts() 就可以很安全的輸出結果。這點的具體使用可以參見本文第一點“一.函數 add_shortcode”的例子。
另外,屬性名中的大寫字母在傳遞給處理函數前會先轉化為小寫字母,因此建議在編寫屬性名時直接使用小寫字母。
- Wordpress
下面分享兩種代碼,一直在別人復制網站內容時,顯示溫馨提示語;另一種更直接的禁止了所有有關復制功能鍵的使用
...
4562019-09-12
- Wordpress
文章頁面顯示百度是否收錄這個功能在筆者的博客已經測試有一段時間了。最開始的代碼也是從網絡上找的,只是自己用,所以也就沒想著分享了,畢竟是...
5122020-07-04
- Wordpress
這篇文章主要為大家介紹了WordPress添加前臺注冊功能的方法,較為詳細的分析了前臺注冊功能的完整實現過程,是進行WordPress開發非常實用的技巧,需要的朋友...
5232019-09-10
- Wordpress
這篇文章主要為大家介紹了WordPress管理頁面底部自定義文字的方法,可通過調用一個自定義函數來實現該功能,是非常實用的技巧,需要的朋友可以參考下...
6742019-09-08
- Wordpress
這篇文章主要介紹了php-cgi進程cpu負載過高:禁用wordpress定時任務wp-cron.php,需要的朋友可以參考下...
5832019-09-01
- Wordpress
這篇文章主要為大家介紹了wordpress給文章生成二維碼的方法,涉及google接口的調用技巧以及本地緩存的應用技巧,具有一定的參考借鑒價值,需要的朋友可以參...
5062019-09-07
- Wordpress
博客更換主域名是很正常的事情,但更換完主域名之后,有一些事情是必須完成,否則會影響到你的WordPress博客正常使用,這里簡單介紹下, 方便需要的朋...
5772019-09-03
- Wordpress
要在 WordPress 中插入表格其實并非難事,只要用 wp-table 插件就能輕松做到,本文的重點是介紹免插件在 WordPress 中插入表格的方法,下面有個不錯的示例感...
4842019-09-19
主站蜘蛛池模板:
国产精品亚洲片夜色在线
|
日韩视频在线免费观看
|
亚州人成网在线播放
|
9热在线精品视频观看
|
兽皇日本
|
午夜亚洲国产
|
52av我爱avhaose01|
国产亚洲高清国产拍精品
|
亚洲麻豆精品
|
亚洲免费福利视频
|
桃乃木香奈作品在线
|
好吊操这里有精品
|
四虎黄色网址
|
四虎新网址
|
福利国模私拍视频在线观看
|
日本福利视频一区
|
naruto hentai玖辛奈
|
亚洲成综合人影院在院播放
|
精品免费|
国产亚洲视频在线
|
色婷婷综合久久久
|
91色资源网在线观看
|
97午夜
|
久久偷拍国2017
|
激情婷婷成人亚洲综合
|
bestialitysex杂交
bedfriend泰剧全集免费观看
|
国产精品免费aⅴ片在线观看
|
美女天天操|
久久久久久久伊人电影
|
办公室强行丝袜秘书啪啪
|
国产麻豆麻豆
|
特黄一级
|
水野朝阳厨房系列在线观看
|
纲手被漫画aⅴ
|
69人成网站色www
|
日韩先锋
|
国产性片在线观看
|
亚洲午夜久久久久国产
|
国产亚洲精品九九久在线观看
|
国产精品成人免费
|
亚洲国产在线视频中文字
|
| |