WordPress 短代碼(Shortcode)詳細介紹和使用

WordPress Shortcode 指的是一些使用[]包含的短代碼,WordPress 會識別這些短代碼並根據短代碼的定義輸出為特定的內容,Shortcode API 這個功能是 WordPress 從 2.5 版本開始引入的,使用它可以給日誌內容添加各種功能,並且 Shortcode 這個接口非常容易使用,並且功能非常強大。

Shortcode 類型

Shortcode API 支持幾乎所有可能的組合形式:自關閉標籤,開放標籤,含有參數的標籤等。

  [mycode]  [mycode foo="bar" id="123" color="red" something="data"]  [mycode]Some Content[/mycode]  [mycode]<p><a href="http://example.com/">HTML Content</a<>/p>[/mycode]  [mycode]Content [another-shotcode] more content[/mycode]  [mycode foo="bar" id="123"]Some Content[/mycode]  

Shortcode 基本概念

首先你要去定義一個函數,來處理你定義的 Shortcode,和它的屬性參數以及引用的內容。

  function my_shortcode_func($attr, $content) {      // $attr $key=>$value 的數組      // $content 是 shortcode 中包含的字符串      // 對 $attr 和 $content 進行處理      // 返回預期的值  }  

然後把自己定義的 Shortcode 和其處理函數管理起來,以便 [mycode attr="value"]content[/mycode] 能夠按照預期執行。

  add_shortcode('mycode', 'my_shortcode_func')  

Shortcode 相關的函數

WordPress 定義了以下和 Shortcode 相關的函數:

一個簡單的 Shortcode 例子

以我寫的 Antispambot ShortCode 插件為例,它定義 [email] 這個 Shortcode,將用戶輸入的 email 地址轉義成 HTML 實體,防止機器抓取,它的內容($content)就是郵箱地址,還定義了屬性 $link,它的值為 1 時候,郵箱顯示為可點擊,詳細代碼如下:

  function antispambot_shortcode_handler($atts, $content='') {  	extract( shortcode_atts( array(  		'link' => '0'  	), $atts ) );  	  	if($link){  		return '<a href="mailto:'.antispambot($content,1).'" title="mail to '.antispambot($content,0).'">'.antispambot($content,0).'</a>';  	}else{  		return antispambot( $content,0);  	}  }  add_shortcode('email', 'antispambot_shortcode_handler');  

Shortcode 更多高級使用技巧:

使用 Shortcode API 開發的插件

本站長期承接 WordPress 項目,詳情請加 QQ:11497107 或者 Email:denis@wpjam.com
如有 WordPress 問題,請到 WPJAM 問答提問!QQ 上不方便解答!


想在手機閱讀更多Wordpress資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems