博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WordPress Shortcode(简码)介绍及使用详解
阅读量:6831 次
发布时间:2019-06-26

本文共 3029 字,大约阅读时间需要 10 分钟。

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

wpdaxue.com-201301300

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

Shortcode 类型

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

123456
[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]

Shortcode 基本概念

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

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

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

1
add_shortcode('mycode', 'my_shortcode_func')

Shortcode 相关的所有函数

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

1234
add_shortcode('mycode', 'function_name'); // 定义一个新的 Shortcoderemove_shortcode('mycode'); // 移除一个 Shortcoderemove_all_shortcodes(); // 移除所有的 Shortcode$return = do_shortcode($content); // 应用 Shortcode 到内容而不输出

一个简单的 Shortcode 例子

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

123456789101112
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');

使用 Shortcode 投放 Google Adsense 广告

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

12345678910111213141516171819202122
'468x60', ), $atts)); switch ($type) { case '468x60' : return //468x60 的广告代码 case '300x250' : return //300x250 的广告代码 }}

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

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

在侧边栏 Widgets 中使用 Shortcode

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

1
add_filter('widget_text', 'do_shortcode');

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

在主题的文件中使用 Shortcode

如果你想用在主题文件中使用名为 [my_shortcode] 的 Shortcode,你只需要按照下面的方式使用do_shortcode() 函数即可:

1

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

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

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

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

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

12345
function bio_shortcode($atts, $content = null) {   $content = wpautop(trim($content));   return '
' . $content . '
';}add_shortcode('bio', 'bio_shortcode');

 

转:

https://www.wpdaxue.com/wordpress-shortcode.html

转载地址:http://kmjkl.baihongyu.com/

你可能感兴趣的文章
精益 React 学习指南 (Lean React)- 2.2 webpack
查看>>
献上一套今年的腾讯前端笔试题给大家瞧瞧
查看>>
如何用 Ansible 部署 Kubernetes 集群到 OpenStack
查看>>
数学美 之 判断线段相交的最简方法
查看>>
ubuntu环境下markdown转换成pdf
查看>>
Friday Q&A 2015-11-06:为什么 Swift 中的 String API 如此难用?
查看>>
用命令方式操作mysql
查看>>
iOS设备标识符获取方法
查看>>
[Leetcode] Count and Say 数个数
查看>>
【redis学习二】多php版本下phpredis扩展安装
查看>>
【产品功能】弹性网卡支持私网多IP
查看>>
kvm 创建 基于glusterfs的存储池
查看>>
阿里云文件存储NAS开发测试环境最佳实践
查看>>
NASA公布“门户计划”,在月球轨道建立空间站进一步探索月球 ...
查看>>
jQuery 选择器 - 1
查看>>
什么是TensorBoard?
查看>>
HBase+Spark技术双周刊 第三期
查看>>
SIGIR阿里论文 | 一种端到端的模型:基于异构内容流的动态排序 ...
查看>>
一对一视频聊天app开发借助了哪些CDN的服务功能? ...
查看>>
Cloud Toolkit 1.1.0 支持 Command 清理
查看>>