0

ショートコードを使用してコンテンツのドロップダウン「タブ」を作成しようとしていますが、マークアップを適切にレンダリングできません。私はこれを取得しようとしています:

<div class="tab">
  <h2 class="reytab">Title</h2>
  <div class="tab-content">...content appears here...</div>
</div>

しかし、以下のショートコードを使用すると、ショートコード内の他のすべてが解析された後にコンテンツが返されます<div class="tab-content"></div>

ショートコード

function reytab($atts, $content = null) {
       extract(shortcode_atts(array('title' => '#'), $atts));
       return '<div class="tab"><h2 class="reytab">' . $title . '</h2><div class="tab-content">' . do_shortcode($content) . '</div></div><!-- End div.tab -->';

}
add_shortcode('reytab', 'reytab');

ショートコードから生成されたマークアップ

<div class="tab">
  <h2 class="reytab">Title</h2>
  <div class="tab-content"></div>
</div>
...content appears here...[\reytab]

が最後に表示されているという事実[\reytab]は、ショートコードが に到達したときに何かがショートコードの完全な実行を妨げていることを示唆しています$content

誰でも問題を見ることができますか?

ありがとう、

大須

4

1 に答える 1

0

ショートコードに何を渡したのかを確認せずに言うのは難しい.. ネストされたショートコードと制限事項を確認しましたか? ドキュメント

相互にネストされたショートコードを使用していますか? すなわち:

[reytab title='Tabs Title']this is my gallery [gallery id=3][/reytab]

私にはうまく見えます。私のブログでテストしたところ、インライン テキストとギャラリーの短いコードの両方を使用して動作します

function reytab_shortcode($atts, $content = null) {
       extract(shortcode_atts(array('title' => '#'), $atts));
       $myShotcode = '<div class="tab">';
       $myShotcode.= '<h2 class="reytab">'.$title.'</h2>';
       $myShotcode.= '<div class="tab-content">'.do_shortcode($content).'</div>';
       $myShotcode.= '</div>';
       return $myShotcode;
}
add_shortcode('reytab', 'reytab_shortcode');

次に、投稿とページに次のように書くことができます。

[reytab title='Tabs Title']
this is my gallery [whichevershortcodeyouwant]
[/reytab]

うまくいけば、これで問題ないはずです。

マーティ

再編集

function reytab_shortcode($atts, $content=null) {
    extract(shortcode_atts(array('title' => '#'), $atts));
    $myShotcode = '<div class="tab">';
    $myShotcode.= '<h2 class="reytab">'.$title.'</h2>';
    $myShotcode.= '<div class="tab-content">'.do_shortcode($content).'</div>';
    $myShotcode.= '</div>';
    return $myShotcode;
}
于 2012-02-29T16:24:05.137 に答える