説明
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

コメント