widgets_init フックの使い方|説明・引数・注意点

説明

widgets_init は、ウィジェットの初期化時に実行されるアクションです。ウィジェットエリアやウィジェットの登録に使います。

基本構文

do_action( 'widgets_init' )

引数

引数はありません。

戻り値

引数はありません。

使い方(サンプル)

add_action( 'widgets_init', function() {
	register_sidebar( array( 'name' => 'サイドバー', 'id' => 'main' ) );
} );

注意点

  • register_sidebar() と register_widget() を呼ぶタイミングです。

実務での使いどころ

  • ウィジェット領域(サイドバー)や、独自のウィジェットを、登録するとき。

よくあるミスと対処

  • init など、別のフックで登録している。ウィジェットの登録は、widgets_init で行う。
  • register_sidebar() の id を、他と重ねている。

NG例

register_sidebar( array( 'name' => 'サイドバー' ) ); // id がなく、フックの外で呼んでいる

OK例

add_action( 'widgets_init', function () {
	register_sidebar( array(
		'name' => 'メインサイドバー',
		'id'   => 'sidebar-main',
	) );
	register_widget( 'My_Widget' );
} );

使い分け早見表

関数 役割
register_sidebar() ウィジェット領域を、登録する
register_widget() ウィジェットを、登録する
widgets_init これらを呼ぶ、フック

関連項目

register_sidebar()、register_widget()

公式リファレンス:widgets_init | WordPress Developer Resources

コメント

タイトルとURLをコピーしました