WordPress 從 2.5 版本開始增加了一個類似 BBCode 标簽的 Shortcode API,可以使用它在日志的内容中來給日志内容添加各種功能。Shortcode 這個接口非常容易使用,并且功能非常強大。

簡單說 WordPress Shortcode 指的是一些使用[]包含的短代碼,WordPress會識别這些短代碼并根據短代碼的定義輸出為特定的内容。
Shortcode API 支援幾乎所有可能的組合形式:自關閉标簽,開放标簽,含有參數的标簽等。
首先你要去定義一個函數,來處理你定義的 Shortcode,和它的屬性參數以及引用的内容。
然後把自己定義的 Shortcode 和其處理函數管理起來,以便 [mycode attr="value"]content[/mycode] 能夠按照預期執行。
WordPress 定義了以下和 Shortcode 相關的函數:
以我愛水煮魚寫的 Antispambot ShortCode 插件為例,内容就是郵箱位址,有個參數 <code>$link</code> 為 1 時候,把郵箱顯示可點選,參數如下:
把下面的代碼儲存到你目前的主題的 <code>functions.php</code>,或者上傳到插件目錄下并激活。
然後你就可以通過撰寫文章的時候,在相應的位置輸入 <code>[adsense]</code> 你的 468×60 的廣告代碼(預設的廣告代碼),如果你想插入 300×250 的廣告代碼,在文章内容中插入 <code>[adsense type="300x250"]</code>,當然你也可以擴充上面的代碼增加更多廣告的格式和類型。
這樣就可以想把廣告插在文章中的哪個位置,就能插在哪個位置了, 非常友善。
Shortcode 很友善,但是隻能用在日志内容中,那麼如何在 WordPress 的側邊欄的 Widgets 中使用 Shortcode,在目前主題的 <code>functions.php</code> 中添加如下代碼:
然後你在 WordPress 背景 > 外觀 > Widgets 界面添加一個文本 Widget,然後插入部落格中經啟用 shortcode 即可。
如果你想用在主題檔案中使用名為 [my_shortcode] 的 Shortcode,你隻需要按照下面的方式使用<code>do_shortcode()</code> 函數即可:
我們在使用 WordPress Shortcode API 開發插件的時候,有個比較麻煩的問題,就是 WordPress 會自動在 shortcode 内添加 br 或者 p 标簽,這樣可能會打亂你的原先預想的 HTML 結構和布局。
造成這個問題的原因是 WordPress 預設的日志内容處理流程中,wpautop(将回車轉換成 p 或者 br 标簽的函數)是在 Shortcode 前面運作的。是以我們的解決方案也是非常簡單,改變它們執行的順序,在目前主題的 <code>functions.php</code> 檔案中添加:
這樣調整順序之後,你的 shortcode 裡面的内容,就不會有自動添加的 p 或者 br 标簽,但是如果 shortcode 中部分的内容你又需要一些 p 或者 br 标簽用來換行的話,你需要自己手動在自己 shortcode 處理程式中添加 wpautop 來處理了。
轉:
https://www.wpdaxue.com/wordpress-shortcode.html
如何聯系我:【萬裡虎】www.bravetiger.cn
【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/