WordPress Shortcode(简码)介绍
原文地址:http://www.wpdaxue.com/wordpress-shortcode.html
WordPress Shortcode 指的是一些使用[]包含的短代码,WordPress会识别这些短代码并根据短代码的定义输出为特定的内容。
然后把自己定义的 Shortcode 和其处理函数管理起来,以便 [mycode attr=”value”]content[/mycode] 能够按照预期执行。
Shortcode 相关的所有函数
WordPress 定义了以下和 Shortcode 相关的函数:-
add_shortcode('mycode', 'function_name'); // 定义一个新的 Shortcode
-
remove_shortcode('mycode'); // 移除一个 Shortcode
-
remove_all_shortcodes(); // 移除所有的 Shortcode
-
$return = do_shortcode($content); // 应用 Shortcode 到内容而不输出
一个简单的 Shortcode 例子
把下面的代码保存到你当前的主题的functions.php,或者上传到插件目录下并激活。
-
<?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 中添加如下代码:
-
add_filter('widget_text', 'do_shortcode');
在主题的文件中使用 Shortcode
如果你想用在主题文件中使用名为 [my_shortcode] 的 Shortcode,你只需要按照下面的方式使用do_shortcode() 函数即可:
-
<?php echo do_shortcode("[my_shortcode]"); ?>
解决 Shortcode 中自动添加的 br 或者 p 标签
造成这个问题的原因是 WordPress 默认的日志内容处理流程中,wpautop(将回车转换成 p 或者 br 标签的函数)是在 Shortcode 前面运行的。所以我们的解决方案也是非常简单,改变它们执行的顺序,在当前主题的functions.php 文件中添加:
-
remove_filter( 'the_content', 'wpautop' );
-
add_filter( 'the_content', 'wpautop' , 12);
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dev!