0

私はWordpressでこの問題と戦ってきました。特に、ネストされたショートコードを持つ1つのショートコードを使用することで、魅力的に機能しますが、単純なショートコードにしたかったので、誰かが使いやすくなりました.

ここでコードを見ることができます

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 に答える