ウィジェットの操作

register_sidebar()

【関数】register_sidebar( オプション )
単一のウィジェットエリアを追加する。

  • name:ウィジェット管理画面に表示されるウィジェットエリアの名称
  • id:ウィジェットエリアの一意の識別子
  • desctiption:ウィジェット管理画面に表示されるウィジェットエリアの説明
  • before_widget:ウィジェットエリアに登録されたブロックの直前に出力されるHTML。「%1$s」には「block-番号」、「%2$s」には「widget_block」とブロックのクラスが入る
  • after_widget:ウィジェットエリアに登録されたブロックの直後に出力されるHTML

register_sidebars()

【関数】register_sidebars( 数値, オプション )
ウィジェットエリアを複数追加する。

  • 数値:追加するウィジェットエリア数を数値で指定する
  • オプション:追加するウィジェットエリアの設定を連想配列か文字列で指定する
  • name:ウィジェットエリアの名称。%dを含めると連番を追加する
  • id:ウィジェットエリアの一意の識別子。2つ目以降のウィジェットエリアは「ウィジェットエリアID-数字」となる

※name,id以外の値はregister_sidebar()関数と同じ。

フッターのウィジェットエリアを追加する(function.phpに記述する)

function neko_widgets_init(){  //関数「neko_widgets_init()」を定義する
 register_sidebars(  //複数のウィジェットエリアを登録する
    3,  //ウィジェットエリア数を指定
    array(
      'name' => 'フッター %d',  //%dで連番を出力(フッター 1、フッター 2、フッター 3)
      'id' => 'footer-widget-area',
      'description' => 'フッターのサイドバー',
      'before_widget' => '<div id="%1$s" class="%2$s">',
      'after_widget' => '</div>',
    )
  );
}
//関数「neko_widgets_init()」を「widgets_init」に実行させる
add_action( 'widgets_init', 'neko_widgets_init' );

以前のウィジェットエリア管理画面に戻す

WordPress5.8から導入されたブロックウィジェットエディターを以前のウィジェット管理画面に戻すには、functions.phpに「remove_theme_support( ‘widgets-block-editor’ );」を追加するか、「Classic Widgets」プラグインをインストール・有効化する。

function neko_theme_setup(){
  remove_theme_support( 'widgets-block-editor' );
}
add_action( 'after_setup_theme', 'neko_theme_setup' );

is_active_sidebar()

【条件分岐タグ】is_active_sidebar( 識別子 )
指定したウィジェットエリアが有効か調べる。
ウィジェットが登録されていればtrue、登録されていなければfalseを返す。

<?php if( is_active_sidebar( 'footer-widget-area' ) ): ?>
<div>
  <?php dynamic_sidebar( 'footer-widget-area' ); ?>
</div>
<?php endif; ?>

dynamic_sidebar()

【関数】dynamic_sidebar( 識別子 )
指定したウィジェットエリアの内容を出力する。

<?php dynamic_sidebar( 'footer-widget-area' ); ?>
inserted by FC2 system