Wordpress短代码(可能是嵌套和输入)

时间:2013-11-12 15:36:14

标签: php wordpress

我一直在使用Wordpress中的这个问题,特别是使用一个短代码,里面有一个嵌套的短代码,就像一个魅力,但我想把它变成一个简单的短代码,反过来对某人来说会更容易使用。

你可以在这里看到代码

function pb_timeline($attr,$content){
        $content = wpautop(trim($content));
        return '<ul class="timeline">'.do_shortcode($content).'</ul>';
}
add_shortcode("timeline","pb_timeline");

function pb_tlsection($attr,$content=null){
          return '<li><div class="year">YYYY</div><div class="dot"></div><div class="box"><p>Description To Go Here.</p></div></li>';
}
add_shortcode("timeline_section","pb_tlsection");
?>

短代码的HTML输出基本上就是这个

<ul class="timeline">
   <li>
      <div class="year">YYYY</div>
      <div class="dot"></div>
      <div class="box">Description</div>
   </li>
</ul>

我想做的是使用像

这样的Wordpress短代码
[timeline_section year="2013" description="Hello"]

例如,内容编辑器可以填写说明。我有这个短代码工作,但我不知道或从任何地方开始输入短代码标签中的数据以准确显示它应该是什么。

我希望你能帮我解决这个问题。

提前谢谢

詹姆斯

编辑:将解决方案添加到此处,以便参考遇到相同问题的人。改进Cyrille的答案,这使我走上了正确的道路。我发现以下内容更有效,因为它是......

function pb_tlsection($atts){

        extract( shortcode_atts( array(
            'year' => 'YYYY',
            'desc' => 'Description',
            ), $atts, 'timeline_section' ) );

          return '<li><div class="year">' . $year . '</div><div class="dot"></div><div class="box"><p>' . $desc . '</p></div></li>';
}
add_shortcode("timeline_section","pb_tlsection");

1 个答案:

答案 0 :(得分:1)

您应该查看以下链接:http://codex.wordpress.org/Shortcode_API 特别是在提取功能。

你可以这样做:

 function pb_tlsection($attr,$content=null){
        extract( shortcode_atts( array(
            'year' => '2013',
            'description' => 'Hellow',
        ), $atts ) );

        return '<li><div class="year">'.$year.'</div><div class="dot"></div><div class="box"><p>'.$description.'</p></div></li>';

}