WORDPRESS SHORTCODE(简码)介绍及使用详解


WordPress从2.5版本开始增加了一个类似的BBCode标签的Shortcode API,可以使用它在日志的内容中给给日志内容添加各种功能。Shortcode这个接口非常容易使用,并且功能非常强大。

简单说WordPress短代码指的是一些使用[]包含的短代码,WordPress会识别这些短代码并根据短代码的定义输出为特定的内容。

简码类型

简码API支持几乎所有可能的组合形式:自关闭标签,开放标签,包含参数的标签等。

[mycode]
[mycode foo =“ bar” id =“ 123” color =“ red” something =“ data”]
[mycode]某些内容[/ mycode]
[mycode] <p> <a href="http://example.com/"> HTML内容</ a <> / p> [/ mycode]
[mycode]内容[另一个shotcode]更多内容[/ mycode]
[mycode foo =“ bar” id =“ 123”]某些内容[/ mycode]

简码基本概念

首先你要去定义一个函数,来处理你定义的Shortcode,和它的属性参数以及引用的内容。

函数my_shortcode_func($ attr,$ content){
    // $ attr $ key => $ value的数组
    // $ content是shortcode中包含的字符串
    //对$ attr和$ content进行处理
    //返回预期的值
}

然后把自己定义的Shortcode和其处理函数管理起来,杀死[mycode attr =“ value”] content [/ mycode]能够按照预期执行。

add_shortcode('mycode','my_shortcode_func')

简码相关的所有函数

WordPress定义了以下和Shortcode相关的函数:

add_shortcode('mycode','function_name'); //定义一个新的
remove_shortcode('mycode'); //可删除的简码
remove_all_shortcodes(); //移除所有的简码
$ return = do_shortcode($ content); //应用Shortcode到内容而不输出

一个简单的Shortcode例子

以我爱水煮鱼写的Antispambot ShortCode插件为例,内容就是邮箱地址,有个参数$link为1时,把邮箱显示可点击,参数如下:

函数antispambot_shortcode_handler($ atts,$ content =''){
	提取(shortcode_atts(数组(
		'链接'=>'0'
	),$ atts));
 
	如果($ link){
		返回'<ahref="mailto:'.antispambot($content,1).'"title="邮件到'.antispambot($content,0)。'">'.antispambot($ content,0)。' </a>';
	}其他{
		返回antispambot($ content,0);
	}
}
add_shortcode('email','antispambot_shortcode_handler');

使用Shortcode投放Google Adsense广告

将下面的代码保存到您当前的主题的functions.php,或者上传到插件目录下并激活。

<?php
/ *
插件名称:Google Adsense的Shorcode
插件URI:http://blog.wpjam.com/m/shortcode-google-adsense/
说明:使用简码发布Google Adsense广告
版本:0.1
作者:丹尼斯
* /
add_shortcode('adsense','adsense_shortcode');
功能adsense_shortcode($ atts){
	提取(shortcode_atts(array(
	'类型'=>'468x60',
	),$ atts));
	开关($ type){
		案例“ 468x60”:
		返回 
			// 468x60的广告代码
		案例“ 300x250”:
		返回 
			// 300x250的广告代码
	}
}

然后你就可以通过撰写文章的时候,在相应的位置输入[adsense]你的468×60的广告代码(替换的广告代码),如果你想插入300×250的广告代码,在文章内容中插入[adsense type="300x250"],当然你也可以扩展上面的代码增加更多广告的格式和类型。

这样就可以想把广告插在文章中的哪个位置,可以插在其中位置了,非常方便。

在侧边栏Widgets中使用Shortcode

Shortcode很方便,但是只能用在目录内容上,那么如何在WordPress的侧边栏的小部件中使用Shortcode,在当前主题的functions.php中添加如下代码:

add_filter('widget_text','do_shortcode');

然后您在WordPress后台>外观>小部件界面添加一个文本小部件,然后插入博客中经启用shortcode即可。

在主题的文件中使用

如果您想用在主题文件中使用称为[my_shortcode]的简码,您只需要按照以下的方式使用do_shortcode()函数即可:

<?php echo do_shortcode(“ [my_shortcode]”); ?>

解决Shortcode中自动添加的br或者p标签

我们在使用WordPress短代码API开发插件的时候,有个比较麻烦的问题,就是WordPress会自动在短代码内部添加br或者p标签,这样可能会打乱你的原先预想的HTML结构和布局。

造成这个问题的原因是WordPress默认的日志内容处理流程中,wpautop(将回车转换成p或br标签的函数)是在Shortcode前面运行的。所以我们的解决方案也是非常简单,改变其执行的顺序,在当前主题的functions.php文件中添加:

remove_filter('the_content','wpautop');
add_filter('the_content','wpautop',12);

这样调整顺序之后,你的shortcode里面的内容,就不会有自动添加的p或br标签,但是如果shortcode中部分的内容你又需要一些p或者br标签设置换行的话,你需要自己手动在自己shortcode处理程序中添加wpautop来处理了。

函数bio_shortcode($ atts,$ content = null){
   $ content = wpautop(trim($ content));
   返回'<div class =“ bio”>'。$ content。'</ div>';
}
add_shortcode('bio','bio_shortcode');



除了特别申明外,本站资源均来自互联网公开内容,如果侵犯了您的权益,请进行投诉
电脑学习网 » WORDPRESS SHORTCODE(简码)介绍及使用详解

发表评论