短代码不适用于wordpress

时间:2013-12-01 17:46:46

标签: wordpress

我有这个短代码..

function codeThree($attr,$content) {
    extract(shortcode_atts(array(
  'style' => 'design1',
  'title' => 'Here is where the title will be reside..',
  'image' => 'codethreeimg'
   ), $atts));

$dir = get_template_directory_uri();

return '<div class="codethree extend" style="background: transparent url('.$dir.'/images/'.$style.'.jpg) no-repeat top center;"><img class="codethreeimg" src="'.$dir.'/'.$image.'" /><p class="codethreep"><h2 class="codethreetitle">'.$title.'</h2><br/>'.do_shortcode($content).'</p></div>';

}

function register_shortcodes(){
   add_shortcode('codethree', 'codeThree');
}

add_action( 'init', 'register_shortcodes');

这用于显示它们。

[codethree style="design1" title="Hi, I'm Armando Gutierrez, #1 Personal Trainer in Torrance & LA, and Body Transformation Specialist." image="http://localhost/wordpress/wp-content/uploads/2013/09/Profile.png"]some contents here[/codethree]

如你所见,这:

'style' => 'design1',
'title' => 'Here is where the title will be reside..',
'image' => 'codethreeimg'

将是默认值,如果用户没有在那些数组字段上指定定义内容,但会发生什么,而是显示默认内容,尽管这些字段已由用户定义内容填充。

[codethree style="design1" title="Hi, I'm Armando Gutierrez, #1 Personal Trainer in Torrance & LA, and Body Transformation Specialist." image="http://localhost/wordpress/wp-content/uploads/2013/09/Profile.png"]some contents here[/codethree]

有人可以检查我的代码,至少告诉我什么错了吗?我对任何建议,想法和建议持开放态度!提前谢谢。

2 个答案:

答案 0 :(得分:0)

我不相信你需要将add_shortcode附加到一个钩子上。而不是:

function register_shortcodes(){
   add_shortcode('codethree', 'codeThree');
}

add_action( 'init', 'register_shortcodes');

尝试add_shortcode('codethree', 'codeThree');然后失去其余部分。至少,这就是我一直在做的事情。

答案 1 :(得分:0)

由于您只有一个短代码,为什么要创建一个注册函数?为什么不用add_shortcode('codethree', 'codeThree'); 这是我的一个短代码的例子,我甚至没有插入我的插件,但是为了完成任何我想要的东西只是为了使帖子中的内容只对网站的非注册成员可见

add_shortcode('wageni','for_guests_only');
 function for_guests_only($atts,$content){
if (!is_user_logged_in()){
    return $content;
}
    return '';

}