如何制作wordpress短代码

如何制作WordPress短代码

      大家好,这是我的第一次在CSDN发布博客,我是个新手,今天我写的是如何制作wordpress短代码,第一次献丑,请多多指教。


A.   短代码和普通 HTML的编写形式不是很相同,采用的是方括号的形式编写的,短代码中还可以包含很多的属性。比如[baidumap height=800 width=800]baiduma短代码有两个属性heightwidth

 

一般短代码两步即可。

第一步:在主题的function.php,创建函数,有无参数都可以。

第二部:函数和钩子(HOOK)绑定起来。

 

function 函数名($atts,$content=null)

{

extract(shortcode_atts(array(

"参数一名称" => '0',

"参数二名称" => '1'(可选)),

$atts));

    return 返回值;

}

add_shortcode(短代码名,函数名);

 

函数名中第一个参数是用来设置短代码的参数的,第二个参数是用来截取短代码之间的内容的,比如说,[baidumap]aabbccdd[/baidumap],那么aabbccdd就是变量content的内容。

注意:我们需要使用两个函数,第一个是Wordpress内置的shortcode_atts()函数,它把用户的短代码属性与本地属性结合在一起,并填充到所需要的位置。第二个是PHPextract()函数,extract()函数它提取短代码的各个属性。extract()函数表示从数组中把变量导入到当前的符号表中,对于数组中的每个元素,键名用于变量名,键值用于变量值。

 

B.    下面看这个例子:

1

2

3

4

5

function Test($atts,$content=null)

{

    return "aa".$content."bb";

}

add_shortcode(Test2,Test);

这个函数返回的是”aa”$content”bb”,$content变量就是短代码之间的内容。


C. 下面看这个例子,


<span style="font-size:18px;">/* 增加短代码,显示最新的posts也就是文章,可以在引用短代码[recent-posts]的时候加上参数$atts和$content,比如[recent-posts posts = "5"]这个是标题
[/recent-posts],这样的话会显示最新的5个文章的,如果不引用$content参数的话,就直接[recent-posts posts = "5"]后面不需要加其他的,如果都不加参数的话就引用函数默认的,默认是$atts=1 */ 

/*第一步是先创建回调函数,我们通过查询数据库,获取最新的文章,并返回一个带有链接的字符串。值得注意的是,回调函数并不打印任何内容,而是返回一个字符串。注意不能用已经注册过的名字*/
function recent_posts_function ( $atts ) {
	extract( shortcode_atts ( array (
		'posts' => 1,
		),$atts ) );
	$return_string = '<ul>';
   query_posts ( array ( 'orderby' => 'date' , 'order' => 'DESC' , 'showposts' => $posts ) ) ;
   //开始循环,query_posts是自定义循环函数。可以加参数的。固定循环不用加query_posts,也不可以加参数。
   if ( have_posts ( ) ) :
       while ( have_posts ( ) ) : the_post ( ) ;
         $return_string .= '<li><a href="' . get_permalink ( ) . '">' . get_the_title ( ) . '</a></li>' ;
       endwhile ;
   endif ;
   $return_string .= '</ul>';
   wp_reset_query ( ) ;
   //结束循环
   return $return_string ;
}
/*第二步是注册短代码,确保短代码的名字是唯一的,以避免重复*/
function register_shortcodes ( ) {
   add_shortcode ( 'recent-posts' , 'recent_posts_function' ) ;
}
/*第三步是增加钩子*/
add_action ( 'init' , 'register_shortcodes' ) ;
/*默认侧边栏,评论,摘要等地方都是不显示短代码的,所以我们要让这些地方也支持短代码。*/
add_filter ( 'widget_text' , 'do_shortcode' ) ; //侧边栏启用短代码
add_filter ( 'comment_text' , 'do_shortcode' ) ; //评论启用短代码
add_filter ( 'the_excerpt' , 'do_shortcode' ) ; //摘要启用短代码</span>

注意:add_action()和add_filter()函数都是钩子(HOOK),钩子指定了你的函数在什么时候执行,add_action("钩子","需要调用的函数");第一个参数钩子可以从http://codex.wordpress.org/Plugin_API/Action_Reference查到add_action

钩子。同样的,filter也是一样,可以从http://codex.wordpress.org/Plugin_API/Filter_Reference查到。

 

作者:paul

文章出处:http://blog.csdn.net/jiandanokok/article/details/42488491本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

分类: wordpress

标签: wordpress,HOOK,短代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值