WordPress简码(可能是嵌套和输入)


Wordpress Shortcodes (Possibly Nested & Input)

我一直在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"]

例如,年份描述可以由内容编辑器填写。我有简码为此工作,但我不知道或任何地方可以开始输入短代码标签中的数据以准确显示它应该是什么。

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

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");

您应该查看以下链接: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>';
}