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 相关的函数:

add_shortcode(‘mycode’, ‘function_name’); // 定义一个新的 Shortcode

remove_shortcode(‘mycode’); // 移除一个 Shortcode

remove_all_shortcodes(); // 移除所有的 Shortcode

$return = do_shortcode($content); // 解析 $content 中的 Shortcode 并返回

$return = strip_shortcodes($content); // 删除 $content 中的 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 '&lt;a href="mailto:'.antispambot($content,1).'" title="mail to '.antispambot($content,0).'"&gt;'.antispambot($content,0).'&lt;/a&gt;';
	}else{
		return antispambot( $content,0);
	}
}
add_shortcode('email', 'antispambot_shortcode_handler');

Shortcode 更多高级使用技巧:

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号