register_sidebar()

サイドバーを登録する

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

構文と返り値

【構文】

PHP
register_sidebar( $args )

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

パラメーター

$args (attay | string)オプション

登録するサイドバーの引数の配列、もしくは文字列

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

  • name (string)

    サイドバーの名前、またはタイトル。

    【初期値】 サイドバー $instance(例:サイドバー 1)

  • id (string)

    サイドバーの識別子

    【初期値】 sidebar-$instance(例:sidebar-1)

  • description (string)

    サイドバーの説明

    【初期値】 空の文字列

  • class (string)

    追加のCSSスタイル

  • before_widget (string)

    各ウィジェットのHTML出力の先頭に追加するHTMLタグ。ウィジェットのID属性は%1$s、クラス名は %2$s

    【初期値】 リストの開始タグ <li>

  • after_widget (string)

    各ウィジェットのHTML出力の末尾に追加するタグ。

    【初期値】 リストの終了タグ </li>

  • before_title (string)

    サイドバーの表示時にタイトルの先頭に追加するHTMLコンテンツ。

    【初期値】 <h2>

  • after_title (string)

    サイドバーの表示時にタイトルの末尾に追加するHTMLコンテンツ。

    【初期値】 </h2>

  • before_sidebar (string)

    サイドバーの表示時に先頭に追加するHTMLコンテンツ。 dynamic_sidebar_before アクションの前に出力。

    【初期値】 空の文字列

  • after_sidebar (string)

    サイドバーの表示時に後ろに追加するHTMLコンテンツ。 dynamic_sidebar_after アクションの前に出力。

    【初期値】 空の文字列

  • show_in_rest (bool)

    REST API で公開するかどうか。

    【初期値】 管理者ユーザーのみに表示

詳細・使用例

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

PHP
<?php register_sidebar(); ?>

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

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

dunamic_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 一覧へ