【WordPress】外観カスマイズの項目を削除する方法|テーマカスタマイザー
WordPressでは、管理画面内にある「外観>カスタマイズ」の画面から、さまざまな設定ができるテーマカスタマイザーという機能があります。
そのテーマカスタマイザーではテーマカスタマイズ APIを利用することで、項目の追加・削除などが行なえますが、今回はデフォルトで用意されているテーマカスタマイザーの項目を削除する方法となります。
【WordPress】「外観>カスタマイズ」の項目を削除する方法
テーマカスタマイザーAPIにデフォルトで用意されている項目は以下となります。
- サイト基本情報
- 色
- ヘッダー画像
- 背景画像
- メニュー
- ウィジェット
- ホームページ設定
- 追加CSS
次のソースコードが上記の項目を削除するソースコードとなり、functions.phpに記述します。
function mytheme_customize_register( $wp_customize ) {
// 「サイト基本情報」を削除
$wp_customize->remove_section("title_tagline");
// 「色」を削除
$wp_customize->remove_section("colors");
// 「ヘッダー画像」を削除
$wp_customize->remove_section("header_image");
// 「背景画像」を削除
$wp_customize->remove_section("background_image");
// 「ホームページ設定」を削除
$wp_customize->remove_section("static_front_page");
// 「追加CSS」を削除
$wp_customize->remove_section("custom_css");
// 「メニュー」を削除
$wp_customize->remove_panel("nav_menus");
// 「ウィジェット」を削除
$wp_customize->remove_panel("widgets");
}
add_action( 'customize_register', 'mytheme_customize_register' , 11);
以下、ソースコードの説明となります。
customize_registerフックについて
テーマカスタマイザーAPIにデフォルトで用意されている項目を削除するには、アクションフックcustomize_registerのコールバック関数を利用します。
コールバック関数内の引数は、テーマカスタマイズ APIを扱うWP_Customize_Managerクラスのオブジェクトとなり、そのオブジェクトのメソッドを利用することで項目を削除できます。
上記例では、$wp_customize->remove_section()、$wp_customize->remove_panel()の引数にメニュー項目を識別するIDを指定しメニュー項目を削除しています。
フックを実行する優先順位について
customize_registerフックを実行する優先順位がデフォルトの場合、「メニュー」の項目を削除できないため、customize_registerフックを実行する優先順序は11以上を指定します。
項目を削除するメソッドについて
メニュー項目には「セクション」と、「セクション」をグループ化できる「パネル」があり、セクションの削除には$wp_customize->remove_section()を利用し、パネルの削除には$wp_customize->remove_panel()を利用しています。
項目を追加する場合
また、テーマカスタマイザーに任意の項目を追加する方法については、以下のリンク先を参考にしてみてください。