從2.5版本開始,增加了一個類似標簽的API,可以在日志內(nèi)容中給日志內(nèi)容添加各種功能。這個界面非常好用,功能也很強大。
簡單來說就是指[]中包含的一些短碼,它會識別這些短碼,并根據(jù)短碼的定義輸出為具體的內(nèi)容。
類型
API 支持幾乎所有可能的組合:自閉合標簽、打開標簽、帶參數(shù)的標簽等。
1
2
3
4
5
6
[mycode]
[mycode foo="bar" id="123" color="red" something="data"]
[mycode]Some Content[/mycode]
[mycode]HTML Content/p>[/mycode]
[mycode]Content [another-shotcode] more content[/mycode]
[mycode foo="bar" id="123"]Some Content[/mycode]
基本概念
首先你要定義一個函數(shù)來處理你定義的 ,以及它的屬性參數(shù)和引用的內(nèi)容。
1
2
3
4
5
6
function my_shortcode_func($attr, $content) {
// $attr $key=>$value 的數(shù)組
// $content 是 shortcode 中包含的字符串
// 對 $attr 和 $content 進行處理
// 返回預期的值
}
然后管理您定義的及其處理程序,以便 [attr="value"][/] 可以按預期執(zhí)行。
1
add_shortcode(‘mycode‘, ‘my_shortcode_func‘)
所有相關功能
定義了以下和相關的函數(shù):
1
2
3
4
add_shortcode(‘mycode‘, ‘function_name‘); // 定義一個新的 Shortcode
remove_shortcode(‘mycode‘); // 移除一個 Shortcode
remove_all_shortcodes(); // 移除所有的 Shortcode
$return = do_shortcode($content); // 應用 Shortcode 到內(nèi)容而不輸出
一個簡單的例子
以I Love Fish寫的插件為例。內(nèi)容是電子郵件地址。當參數(shù) $link 為 1 時,郵件可以顯示并可點擊。參數(shù)如下:
1
2
3
4
5
6
7
8
9
10
11
12
function antispambot_shortcode_handler($atts, $content=‘‘) {
extract( shortcode_atts( array(
‘link‘ => ‘0‘
), $atts ) );
?
if($link){
return ‘‘.antispambot($content,0).‘‘;
}else{
return antispambot( $content,0);
}
}
add_shortcode(‘email‘, ‘a(chǎn)ntispambot_shortcode_handler‘);
用于投放廣告
將下面的代碼保存到你當前主題的.php,或者上傳到插件目錄并激活它。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
‘468x60‘,
), $atts));
switch ($type) {
case ‘468x60‘ :
return
//468x60 的廣告代碼
case ‘300x250‘ :
return
//300x250 的廣告代碼
}
}
然后你可以在寫文章時在對應位置輸入[]你的468×60廣告代碼(默認廣告代碼),如果要插入300×250廣告代碼,在文章內(nèi)容中插入[ type=""],當然你可以擴展上面的代碼來添加更多的廣告格式和類型。
這樣,你可以想在文章的任何位置插入廣告,而且可以在任何位置插入,非常方便。
在側邊欄中使用
很方便,但是只能在日志內(nèi)容中使用,那么如何在的側邊欄中使用呢,在當前主題的.php中添加如下代碼:
1
add_filter(‘widget_text‘, ‘do_shortcode‘);
然后你在后臺>外觀>界面中添加一個文本插入到博客中啟用它。
使用
在主題文件中
如果要在主題文件中使用名稱[],只需按如下方式使用()函數(shù)即可:
1
解決自動添加的br或p標簽
我們在使用API??開發(fā)插件的時候,有個比較麻煩的問題wordpress 添加短代碼wordpress建站,就是會自動在里面添加br或者p標簽,可能會打亂你原本期待的HTML結構和布局。
出現(xiàn)這個問題的原因是在默認的日志內(nèi)容處理流程中wordpress 添加短代碼,(將回車轉換為p或br標簽的函數(shù))之前運行過。所以我們的解決方案也很簡單wordpress網(wǎng)站制作,改變它們的執(zhí)行順序,在當前主題的.php文件中添加:
1
2
remove_filter( ‘the_content‘, ‘wpautop‘ );
add_filter( ‘the_content‘, ‘wpautop‘ , 12);
這樣調(diào)整順序后,你的內(nèi)容中不會自動添加p或者br標簽了,但是如果中間的內(nèi)容需要一些p或者br標簽用于換行,就需要手動添加交給你自己的處理程序來處理。
1
2
3
4
5
function bio_shortcode($atts, $content = null) {
$content = wpautop(trim($content));
return ‘‘ . $content . ‘
‘;
}
add_shortcode(‘bio‘, ‘bio_shortcode‘);
文章來自互聯(lián)網(wǎng),侵權請聯(lián)系刪除,文章闡述觀點來自文章出處,并不代表本站觀點。
m.bjcthy.com