WordPress 中短代码 Shortcode 详细介绍和使用

发布于 2018-09-25 23:22:09 字数 2182 浏览 2255 评论 0

WordPress Shortcode 指的是一些使用 ⌈⌋ 包含的短代码,WordPress 会识别这些短代码并根据短代码的定义输出为特定的内容,Shortcode API 这个功能是 WordPress 从 2.5 版本开始引入的,使用它可以给日志内容添加各种功能,并且 Shortcode 这个接口非常容易使用,并且功能非常强大。

为保证本文内容的完整性,防止短代码被 WordPress 自动翻译,本文中所有涉及到的方括号([])都使用 ⌈⌋ 代替。

Shortcode 类型

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

⌈mycode⌋
⌈mycode foo="bar" id="123" color="red" something="data"⌋
⌈mycode⌋Some Content⌈/mycode⌋
⌈mycode⌋<p><a href="http://www.wenjiangs.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 并返回

一个简单的 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');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文