2022年03月27日

Actionフック:widgets_init

アクションフックの widgets_init は、管理画面の「外観→ウィジェット」を実行する時にフックされます。

①サイドバーの設定

②ウィジェット部品の追加/削除

で利用されます。

 

1.利用サンプル

下記サンプルはこのサイトで使っているサイドバーとウィジェット部品です。

利用しないウィジェット部品は削除しています。

function set_widgets() {
	register_sidebar( [ 'id' => 'post'    ,'name' => '投稿ページ'			,'description' => 'id = =post'] );
	register_sidebar( [ 'id' => 'category','name' => 'カテゴリページ'	,'description' => 'id = category'] );
	register_sidebar( [ 'id' => 'archive' ,'name' => 'アーカイブページ'	,'description' => 'id = archive'] );
	register_sidebar( [ 'id' => 'footer' 	,'name' => 'フッタ用'			,'description' => 'id= footer']) ;
	unregister_widget('WP_Widget_RSS');
	unregister_widget('WP_Widget_Calendar');
	unregister_widget('WP_Widget_Media_Gallery');
	unregister_widget('WP_Widget_Tag_Cloud');
	unregister_widget('WP_Widget_Meta');
	unregister_widget('WP_Widget_Recent_Comments');
	unregister_widget('WP_Widget_Search');
	unregister_widget('WP_Widget_Media_Audio');
	//register_widget('WP_Widget_Links');
}
add_action('widgets_init', 'set_widgets');

■アクションフック:widgets_init に参照変数はありません。

■2~5行目:register_sidebar()で管理画面の「外観→ウィジェット」で表示するサイドバーを定義しています。

■6~13行目:unregister_widget()で管理画面の「外観→ウィジェット」に表示されている不要なウェジット部品を削除しています。

■14行目:もし追加するウィジェッツ部品があった場合はregister_widget()で追加します。

 

アクションフック&関数
  • admin_init
  • admin_menu
  • after_setup_theme
  • customize_register
  • manage_pages_custom_column
  • manage_posts_custom_column
  • pre_get_posts
  • save_post
  • widgets_init
  • wp_enqueue_scripts
  • wp_head
  • add_editor_style()
  • add_post_type_support()
  • add_theme_support()
  • do_action()
  • get_post()
  • get_theme_mod()
  • register_nav_menu()
  • register_post_type()
  • register_sidebar()
  • register_taxonomy()
  • register_widget()
  • remove_action()
  • remove_editor_styles()
  • remove_theme_support()
  • set_post_thumbnail_size()
  • set_query_var()
  • show_admin_bar()
  • unregister_nav_menu()
  • unregister_widget()
  • wp_enqueue_script()
  • wp_enqueue_style()