显示WordPress当前可用的所有简码(Shortcode),WordPress Shortcode(简码)介绍及使用详解

  • A+
所属分类:WordPress源码

心语家园 https://www.xinyucn.cc/ 为非盈利网站,纯公益性质,所有软件和插件均免费下载。象征性收取的少许费用,完全是为了维持网站运营,支付服务器费用。且收费有助于防止采集和拷贝。由于有些软件主题插件升级频繁,导致汉化不完全,如果你购买后发现此问题,可通过微信公众号反馈,我们将尽快完善汉化。

正文开始:

简码(Shortcode)是WordPress一个非常有用的功能,你可以先了解 WordPress Shortcode(简码)介绍及使用详解,今天要说的就是如何在WordPress后台显示所有当前可用的简码。

显示WordPress当前可用的所有简码(Shortcode),WordPress Shortcode(简码)介绍及使用详解

只要使用下面的PHP代码就可以输出所有简码:

1
2
3
4
5
6
7
8
<?php
        global $shortcode_tags;
        echo '
<pre>'; 
        print_r($shortcode_tags); 
        echo '</pre>
';
?>

如果你想在WordPress后台一个页面罗列所有可用简码,下载安装 view-all-shortcodes 插件,就可以在 后台 >设置>View All Shortcodes 下查看 。

WordPress Shortcode(简码)介绍及使用详解

WordPress 从 2.5 版本开端增加了一个相似 BBCode 标签的 Shortcode API,能够运用它在日志的内容中来给日志内容添加各种功用。Shortcode 这个接口十分容易运用,并且功用十分强大。

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

Shortcode 类型

Shortcode API 支持简直一切可能的组合方式:自关闭标签,开放标签,含有参数的标签等。

1
2
3
4
5
6
[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,和它的属性参数以及援用的内容。

1
2
3
4
5
6
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 相关的函数:

1
2
3
4
add_shortcode('mycode', 'function_name'); // 定义一个新的 Shortcode
remove_shortcode('mycode'); // 移除一个 Shortcode
remove_all_shortcodes(); // 移除一切的 Shortcode
$return = do_shortcode($content); // 应用 Shortcode 到内容而不输出

一个简单的 Shortcode 例子

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

1
2
3
4
5
6
7
8
9
10
11
12
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).'';
	}else{
		return antispambot( $content,0);
	}
}
add_shortcode('email', 'antispambot_shortcode_handler');

运用 Shortcode 投放 Google Adsense 广告

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
/*
Plugin Name: Shorcode for Google Adsense
Plugin URI:  http://blog.wpjam.com/m/shortcode-google-adsense/
Description: 运用 Shortcode 投放 Google Adsense 广告
Version: 0.1
Author: Denis
*/
add_shortcode('adsense', 'adsense_shortcode');
function adsense_shortcode($atts) {
	extract(shortcode_atts(array(
	'type' => '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
<?php echo do_shortcode("[my_shortcode]"); ?>

处理 Shortcode 中自动添加的 br 或者 p 标签

我们在运用 WordPress Shortcode API 开发插件的时分,有个比拟费事的问题,就是 WordPress 会自动在 shortcode 内添加 br 或者 p 标签,这样可能会打乱你的原先料想的 HTML 构造和规划。

形成这个问题的缘由是 WordPress 默许的日志内容处置流程中,wpautop(将回车转换成 p 或者 br 标签的函数)是在 Shortcode 前面运转的。所以我们的处理计划也是十分简单,改动它们执行的次第,在当前主题的 functions.php 文件中添加:

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

这样调整次第之后,你的 shortcode 里面的内容,就不会有自动添加的 p 或者 br 标签,但是假如 shortcode 中局部的内容你又需求一些 p 或者 br 标签用来换行的话,你需求本人手动在本人 shortcode 处置程序中添加 wpautop 来处置了。

1
2
3
4
5
function bio_shortcode($atts, $content = null) {
   $content = wpautop(trim($content));
   return '
' . $content . '
';
}
add_shortcode('bio', 'bio_shortcode');
从2021年1月1日开始,本站所有资源必须注册登陆后才能下载,全部免费。10家园币=1元人民币。如果你不想花钱,可以通过每天登陆、签到或邀请注册等方式免费获得家园币。
weinxin
官方微信公众号
扫一扫关注微信公众号,如果你觉得本站帮到了你,请通过下面的赏字按钮捐赠本站,谢谢!

发表评论

您必须登录才能发表评论!