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 上不方便解答!

分享到Facebook
技术平台: Nasthon Systems