register_sidebar()

サイドバーを登録する

register_sidebar は、WordPressでウィジェットを設置できるエリアを登録するためのテンプレートタグです。主にサイドバーやフッター、ヘッダー下などに利用され、テーマ内で柔軟にウィジェットを配置できます。
引数でID・名前・説明・HTML構造を指定でき、複数のウィジェットエリアを定義することもできます。

構文と返り値

PHP
register_sidebar( $args )

【返り値】サイドバーのID ($wp_registered_sidebars がグローバルに追加)

パラメーター

$argsattay | string任意
登録するサイドバーの引数の配列、もしくは文字列

【$args パラメーターの引数】

namestring
サイドバーの名前、またはタイトル。
【初期値】 サイドバー $instance(例:サイドバー 1)
idstring
サイドバーの識別子
【初期値】 sidebar-$instance(例:sidebar-1)
descriptionstring
サイドバーの説明
【初期値】空の文字列
classstring
追加のCSSスタイル
before_widgetstring
各ウィジェットのHTML出力の先頭に追加するHTMLタグ。ウィジェットのID属性は %1$s、クラス名は %2$s
【初期値】 リストの開始タグ <li>
after_widgetstring
各ウィジェットのHTML出力の末尾に追加するタグ。
【初期値】リストの終了タグ </li>
before_titlestring
サイドバーの表示時にタイトルの先頭に追加するHTMLコンテンツ。
【初期値】<h2>
after_titlestring
サイドバーの表示時にタイトルの末尾に追加するHTMLコンテンツ。
【初期値】</h2>
before_sidebarstring
サイドバーの表示時に先頭に追加するHTMLコンテンツ。dynamic_sidebar_before アクションの前に出力。
【初期値】空の文字列
after_sidebarstring
サイドバーの表示時に後ろに追加するHTMLコンテンツ。dynamic_sidebar_after アクションの前に出力。
【初期値】空の文字列
show_in_restbool
REST API で公開するかどうか。
【初期値】管理者ユーザーのみに表示

詳細・使用例

以下のコードでウィジェットが有効になります。記述場所は functions.php。

PHP
<?php register_sidebar(); ?>

register_sidebar は単体ではウィジェットエリアを「登録」するだけで、実際にサイトに表示するには dynamic_sidebar を使用します。

PHP
<?php register_sidebar(); ?>
<?php dynamic_sidebar(); ?>

【デフォルトのID・名前・説明・HTML構造を変更】

PHP
<?php
// サイドバーを登録
function mytheme_register_sidebars() {
  register_sidebar(array(
    'name'          => 'メインサイドバー',
    'id'            => 'main_sidebar',
    'description'   => '投稿・固定ページに表示されるサイドバーです。',
    'before_widget' => '<div class="widget">',  // ウィジェットを囲む開始タグ
    'after_widget'  => '</div>',               // ウィジェットを囲む終了タグ
    'before_title'  => '<h3 class="widget-title">', // タイトル開始タグ
    'after_title'   => '</h3>',                    // タイトル終了タグ
  ));
}
add_action( 'widgets_init', 'mytheme_register_sidebars' );

コード Reference 一覧へ