- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
関数リファレンス/dynamic sidebar
目次
説明
この関数はアクティブなウィジェットコールバック関数を順に呼び出し、サイドバーに表示します。複数のサイドバーがある場合、表示するサイドバーの番号または名前を知らせる必要があります。この関数が正しく実行されると true を返し、失敗すると false を返します。
静的なサイドバーを表示するかどうかを決定するのに、返り値を使用すべきです。こうすることで、ウィジェットプラグインがアクティブでない場合にも、テーマがきちんと表示されるようにできます。
サイドバーを番号で登録している場合、番号で呼び出します。名前で登録している場合は、名前で呼び出します。
使い方
<?php dynamic_sidebar( $number ); ?>
パラメータ
- $number
- (整数/文字列) (オプション) サイドバーの名前または ID。
- 初期値: 1
返り値
- (真偽値)
- サイドバーの中にウィジェットが登録されているときは true を返し、ウィジェットが登録されていないか、サイドバーが見つからないときは false を返します。
用例
致命的なエラーを防ぐために、以下のように使用することをお勧めします。
<?php if ( is_active_sidebar( 'left-sidebar' ) ) : ?> <ul id="sidebar"> <?php dynamic_sidebar( 'left-sidebar' ); ?> </ul> <?php endif; ?>
<ul id="sidebar"> <?php dynamic_sidebar( 'right-sidebar' ); ?> </ul>
<ul id="sidebar"> <?php if ( ! dynamic_sidebar() ) : ?> <li>{静的サイドバー項目 No.1}</li> <li>{静的サイドバー項目 No.2}</li> <?php endif; ?> </ul>
「Twenty Ten」テーマ内(WordPress 3.0 以降)
複数のサイドバー
名前($number を文字列で指定した場合)、または ID(整数値で指定、または省略した場合)のいずれかで特定のサイドバーをロードすることができます。例として、register_sidebar( array( 'name' => 'top_menu' ) )
という定義でサイドバーを登録してある場合、dynamic_sidebar( 'top_menu' )
という記述で呼び出すことができます。
ID を使って呼び出す場合( dynamic_sidebar( 1 )
)、サイドバーに名前をつけておく必要はありませんが、どのサイドバーを呼び出しているのか把握しにくくなります。その場合、functions.php ファイルやウィジェット管理画面を見なければなりません。ID は 1 から始まることに注意してください。
register_sidebar() WordPress 関数を呼び出すときに ID として文字列を使うと、コードの可読性を高められます。ID は英小文字と数字とし、空白を含んではいけません。他に -(ハイフン)と _(アンダースコア)も使えます。ID はユニークにするとともに、サイドバーの名前と同じではいけません。固有の ID を使えばサイドバーの名前が翻訳可能になります。
// $text_domain の有効な値は __() WordPress 関数を見てください。 register_sidebar( array( 'id' => 'top-menu', 'name' => __( 'Top Menu', $text_domain ), 'description' => __( 'This sidebar is located above the age logo.', $text_domain ), ) );
これで読みやすい ID を使って dynamic_sidebar( 'top-menu' ) という呼び出し方が可能になります。
変更履歴
新規導入: 2.2.0
ソースファイル
dynamic_sidebar() は wp-includes/widgets.php
にあります。
合わせて読みたい記事
関連資料
サイドバー:
is_active_sidebar(),
is_dynamic_sidebar(),
dynamic_sidebar(),
register_sidebars(),
register_sidebar(),
unregister_sidebar(),
wp_register_sidebar_widget() / en,
wp_unregister_sidebar_widget() / en,
wp_get_sidebars_widgets() / en,
wp_set_sidebars_widgets() / en,
ウィジェット API:
is_active_widget(),
the_widget(),
register_widget(),
unregister_widget() / en,
wp_register_widget_control() / en,
wp_unregister_widget_control() / en,
wp_convert_widget_settings() / en,
wp_get_widget_defaults() / en,
wp_widget_description() / en
最新英語版: WordPress Codex » Function Reference/dynamic_sidebar (最新版との差分)