• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/register sidebar

提供: WordPress Codex 日本語版
移動先: 案内検索

サイドバーをひとつ定義して ID を返します。'widgets_init' アクションで呼び出してください。

使い方

<?php register_sidebar( $args ); ?>

デフォルトの使い方

<?php $args = array(
	'name'          => __( 'Sidebar name', 'theme_text_domain' ),
	'id'            => 'unique-sidebar-id',
	'description'   => '',
	'class'         => '',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget'  => '</li>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>' ); ?>

パラメータ

args
文字列/配列) (オプション) 'name' と 'id' の値からサイドバーを作成。
初期値: なし
  • name - サイドバーの名前(デフォルトは 'Sidebar' を翻訳した文字列と ID の数字)。
  • id - サイドバーの ID - すべて小文字の半角英数字で空白を除く(デフォルトは自動的にカウントアップする数値の ID)。id 引数をセットしなければ、バージョン 4.2 以降はデバッグモードなら E_USER_NOTICE メッセージが出力される。
  • description - サイドバーの説明テキスト。ウィジェット管理画面に表示される。(バージョン2.9以降)(デフォルト:空文字列)
  • class - 管理画面の 外観 > ウィジェットでサイドバーに割り当てられる CSS クラス。このクラスは WordPress のウィジェット管理画面のソースコードのみに出力されます。Web サイトのフロントエンドには出力されません。参考: 指定したクラス値の前に "sidebar" が付きます。例えば "tal" を指定すると "sidebar-tal" が出力されます。(デフォルト:空文字列)
  • before_widget - ウィジェットの直前に出力する HTML テキスト(デフォルト:<li id="%1$s" class="widget %2$s">)。参考: sprintf で変数を置換。
  • after_widget - ウィジェットの直後に出力する HTML テキスト(デフォルト:</li>\n)。
  • before_title - タイトルの直前に出力する HTML テキスト(デフォルト:<h2 class="widgettitle">)。
  • after_title - タイトルの直後に出力する HTML テキスト(デフォルト:</h2>\n)。

オプションの $args パラメータは連想配列で、有効なウィジェットのコールバック関数へ第1パラメータとして渡されます。(配列ではなく文字列が与えられると、parse_str() によって連想配列を生成してから渡されます。)この引数はふつう、ウィジェットとタイトルを囲むテーマ固有の HTML タグを与えるために使います。

参考

  • WordPress 3.4.1 以降、いくつか避けるべき ID があります。ここを見てください。こうした ID を収集するプラグインを作ってリストにしてくれた "toscho" に感謝します。
  • サイドバーに一意の名前("Right Sidebar" や "Left Sidebar")を与えたり異なるマークアップが必要だったりするときは、register_sidebars() で一度に作るのではなくこの関数を使うとよいでしょう。名前は管理画面でのみ表示されますが、各サイドバーにはっきりと名前をつければ、どのサイドバーがどこに表示されるか管理者へヒントを与えることができます。参考: この名前はサイドバーの内容を保存するインデックスとしても使用されるので、サイドバーの内容は同じ名前を使用する別テーマを選択した時に再利用および上書きされます。
  • before/after のデフォルト値は、リストを h2 タイトルでマークアップしてサイドバーを生成するテーマを想定しています。これはすべてのテーマに推奨される規約で、このように設計されたテーマなら before/after タグを気にすることなくサイドバーを登録できます。もし何らかの理由でこのようにマークアップしない場合は、サイドバーを登録するときにこれらのタグを指定する必要があります。そのとき id と class 属性はそのままコピーすることを推奨します。そうすれば内部の sprintf 呼び出しが機能して、CSS スタイルが個々のウィジェットに適用されます。

用例

名前が "Main Sidebar" でタイトルの前後に <h2> と </h2> がついたサイドバーを生成します:

add_action( 'widgets_init', 'theme_slug_widgets_init' );
function theme_slug_widgets_init() {
    register_sidebar( array(
        'name' => __( 'Main Sidebar', 'theme-slug' ),
        'id' => 'sidebar-1',
        'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ),
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget'  => '</li>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>',
    ) );
}

変更履歴

  • 4.2.0 : id 属性がないとき E_USER_NOTICE を起こす。
  • 2.9.0 : description 属性を追加。
  • 2.2.0 : 新規導入。

ソースファイル

register_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,



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/register_sidebar最新版との差分