0

我一直在与 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");
4

1 回答 1

2

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

}
于 2013-11-12T15:47:47.710 回答