1

シンプルでわかりやすいように見えますが、そうではありません。

ウィジェット出力の内部にクラスを登録しようとしています。私はブートストラップ 3 を使用しているためpanel-body、ウィジェット全体がパネル クラスでラップされているのに対し、内側の部分にクラスを追加する必要がありpanel-defaultます。

例:

register_sidebar( 
        array( 
                'name' => __( 'Home Page (Beside Content)' , 'symbiostock' ),
                'id' => 'home-page-beside-content',
                'class'         => 'panel-body',
                'before_widget' => '<div class="panel panel-default home-beside-content"><aside id="%1$s" class="widget %2$s">',
                'after_widget' => '</aside></div>',
                'before_title' => '<div class="row panel-heading"><h3 class="featured-posts col-md-12">',
                'after_title' => '</h3></div>', ) );

「class=>'something」はウィジェットの内部にクラスを登録すると考える人もいるでしょう。しかし、それは現れません。何が起こるかは次のとおりです。

<div class="panel panel-default home-beside-content">
   <aside class="widget widget_text" id="text-8">
      <div class="row panel-heading">
         <h3 class="featured-posts col-md-12">This is a test</h3>
      </div>
      <div class="textwidget">This is a test</div>
   </aside>
</div>

私が期待しているのに対し:

<div class="panel panel-default home-beside-content">
   <aside class="widget widget_text" id="text-8">
      <div class="row panel-heading">
         <h3 class="featured-posts col-md-12">This is a test</h3>
      </div>
      <div class="textwidget panel-body">This is a test</div>
   </aside>
</div>

「パネル本体」の追加に注目してください。

どうすればこれを修正できますか? ブートストラップ 3 を使用しているため、クラスのネストの順序は重要です。

http://getbootstrap.com/components/#panels

4

2 に答える 2

1

テーマの footer.php ファイルの最後にある jQuery で問題を解決しました。

panelごとに、 panel-heading以外の子を取得し、それらすべてをpanel-bodyでラップする必要があります。

<script>
jQuery('.panel').each(function(index, value) {
 jQuery(value).children().not('.panel-heading').wrapAll('<div class="panel-body"></div>');
});
</script>

注:ショートカット$が使用できなかったため、完全な単語JQueryを使用しました。

于 2013-12-12T07:56:38.203 に答える
0

はい、そう思うかもしれませんが、Wordpress は多くの場合、あなたが考えていることとは正反対のことをします! :-)

私は以前にこの問題を抱えていました。何らかの特殊な理由で、そのようには機能しません。いくつかのトリックを使用して、ウィジェットをそのクラスにラップする必要があります。何かのようなもの:

register_sidebar( 
    array( 
            'name' => __( 'Home Page (Beside Content)' , 'symbiostock' ),
            'id' => 'home-page-beside-content',
            'before_widget' => '<div class="panel panel-default home-beside-content"><aside id="%1$s" class="widget %2$s">',
            'after_widget' => '</div></aside></div>',
            'before_title' => '<div class="row panel-heading"><h3 class="featured-posts col-md-12">',
            'after_title' => '</h3></div><div class="panel-body">', ) );

「after_title」で新しい div を開始し、「after_widget」で閉じていることに注意してください。

于 2013-10-06T23:48:53.670 に答える