サイドバーは普通に書くと、アクティブでない場合もマークアップされてしまう。なので、サイドバーに何か入っている時だけアクティブにするというコードが便利だ。いつでも引っ張り出すのに苦労するのでここに書き留めておこう。
1 2 3 4 5 |
<?php if ( is_active_sidebar( 'leftsidebar' ) ) : ?> <aside id="leftsidebar" class="widget-area"> <?php dynamic_sidebar( 'leftsidebar' ); ?> </aside> <?php endif; ?> |
条件の中にHTMLも詰め込んでおけば、サイドバーが空欄であれば無駄な出力がなくなるってことか。
動いてるよ~
あ、ちなみにこれは、functions.phpでウィジェット作ってるあるね。
それもメモっておこう。
1 2 3 4 5 6 7 8 9 10 11 12 |
function hoge_widgets_init() { register_sidebar( array( 'name' => esc_html__( 'leftsidebar', 'hogetheme' ), 'id' => 'leftsidebar', 'description' => '', 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'hoge_widgets_init' ); |
nameのhogethemeは変更の必要あるね。