dynamic_sidebar() の使い方|説明・引数・注意点

説明

dynamic_sidebar() は、登録したウィジェットエリアを出力する関数です。

基本構文

dynamic_sidebar( int|string $index = 1 ): bool

引数

  • $index:サイドバーのIDまたは名前

戻り値

ウィジェットが出力されたら true。

使い方(サンプル)

if ( is_active_sidebar( 'main-sidebar' ) ) {
	dynamic_sidebar( 'main-sidebar' );
}

注意点

  • ウィジェットがないときに空のコンテナが出力されないよう、is_active_sidebar() で判定します。

実務での使いどころ

  • 登録したウィジェット領域を、テンプレートの決まった場所に、出力するとき。

よくあるミスと対処

  • id が、register_sidebar() で登録したものと、違う。何も表示されない。
  • ウィジェットが、置かれていないときも、枠を出力している。is_active_sidebar() で、判定してから出す。
  • 戻り値を、確認していない。ウィジェットが出力されたときは true。

NG例

echo '<aside>';
dynamic_sidebar( 'sidebar-main' );
echo '</aside>'; // ウィジェットが無くても、枠が出る

OK例

if ( is_active_sidebar( 'sidebar-main' ) ) {
	echo '<aside>';
	dynamic_sidebar( 'sidebar-main' );
	echo '</aside>';
}

使い分け早見表

関数 役割
dynamic_sidebar() ウィジェット領域を、出力する
is_active_sidebar() ウィジェットが、置かれているかを確認する
register_sidebar() ウィジェット領域を、登録する

関連項目

register_sidebar()、is_active_sidebar()

公式リファレンス:dynamic_sidebar() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました