从2.5版本开始,增加了一个类似标签的API,可以在日志内容中给日志内容添加各种功能。这个界面非常好用,功能也很强大。
简单来说就是指[]中包含的一些短码,它会识别这些短码,并根据短码的定义输出为具体的内容。
类型
API 支持几乎所有可能的组合:自闭合标签、打开标签、带参数的标签等。
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]
基本概念
首先你要定义一个函数来处理你定义的 ,以及它的属性参数和引用的内容。
1
2
3
4
5
6
function my_shortcode_func($attr, $content) {
// $attr $key=>$value 的数组
// $content 是 shortcode 中包含的字符串
// 对 $attr 和 $content 进行处理
// 返回预期的值
}
然后管理您定义的及其处理程序,以便 [attr="value"][/] 可以按预期执行。
1
add_shortcode(‘mycode‘, ‘my_shortcode_func‘)
所有相关功能
定义了以下和相关的函数:
1
2
3
4
add_shortcode(‘mycode‘, ‘function_name‘); // 定义一个新的 Shortcode
remove_shortcode(‘mycode‘); // 移除一个 Shortcode
remove_all_shortcodes(); // 移除所有的 Shortcode
$return = do_shortcode($content); // 应用 Shortcode 到内容而不输出
一个简单的例子
以I Love Fish写的插件为例。内容是电子邮件地址。当参数 $link 为 1 时,邮件可以显示并可点击。参数如下:
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‘, ‘antispambot_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广告代码,在文章内容中插入[ type=""],当然你可以扩展上面的代码来添加更多的广告格式和类型。
这样,你可以想在文章的任何位置插入广告,而且可以在任何位置插入,非常方便。
在侧边栏中使用
很方便,但是只能在日志内容中使用,那么如何在的侧边栏中使用呢,在当前主题的.php中添加如下代码:
1
add_filter(‘widget_text‘, ‘do_shortcode‘);
然后你在后台>外观>界面中添加一个文本插入到博客中启用它。
使用
在主题文件中
如果要在主题文件中使用名称[],只需按如下方式使用()函数即可:
1
解决自动添加的br或p标签
我们在使用API开发插件的时候,有个比较麻烦的问题wordpress 添加短代码wordpress建站,就是会自动在里面添加br或者p标签,可能会打乱你原本期待的HTML结构和布局。
出现这个问题的原因是在默认的日志内容处理流程中wordpress 添加短代码,(将回车转换为p或br标签的函数)之前运行过。所以我们的解决方案也很简单wordpress网站制作,改变它们的执行顺序,在当前主题的.php文件中添加:
1
2
remove_filter( ‘the_content‘, ‘wpautop‘ );
add_filter( ‘the_content‘, ‘wpautop‘ , 12);
这样调整顺序后,你的内容中不会自动添加p或者br标签了,但是如果中间的内容需要一些p或者br标签用于换行,就需要手动添加交给你自己的处理程序来处理。
1
2
3
4
5
function bio_shortcode($atts, $content = null) {
$content = wpautop(trim($content));
return ‘‘ . $content . ‘
‘;
}
add_shortcode(‘bio‘, ‘bio_shortcode‘);
文章来自互联网,侵权请联系删除,文章阐述观点来自文章出处,并不代表本站观点。
www.8001717.cn