カスタマイザーのセクションを非表示にするフィルタ
ワードプレスのカスタマイザーの機能は、スイッチ一つでテーマの出力を変更できる大変便利な機能です。
しかしWEBサイトの制作者と利用者が異なるような場合、利用者が安易に設定を変更してしまう事で制作者の狙い通りに表示できなくなってしまう事も懸念されます。
管理パネルの表示項目をカスタマイズするといった事柄については、WEB上で様々な情報を入手することが出来ますが、カスタマイザーの項目の非表示については あまり見かけることがありません。
このような場合に、比較的簡単に項目の表示非表示を行うことが出来るように、Raindropsテーマ version1.425で表示非表示をコントロールできるフィルターを準備する事にしました。
また、この検討の過程で、デフォルトオプションの表示非表示をコントロールするテストも行いましたので テストの結果もメモに残します。
functions.php
/**
* レインドロップステーマのカスタマイズ設定を、更新履歴を除きすべて非表示とするフィルタ
*/
add_filter('raindrops_customize_args','__return_empty_array');
/**
* カスタマイザーのデフォルトセクションをすべて非表示とするフィルタ
*/
add_action( "customize_register", "sim_customizer_remove_sections" );
function sim_customizer_remove_sections( $wp_customize ) {
$wp_customize->remove_control("header_image");
$wp_customize->remove_panel("widgets");
$wp_customize->remove_section("colors");
$wp_customize->remove_section("background_image");
$wp_customize->remove_section("static_front_page");
$wp_customize->remove_section("title_tagline");
$wp_customize->remove_control('nav');
$wp_customize->get_panel('nav_menus')->active_callback= '__return_false';
remove_action( 'customize_controls_enqueue_scripts', array( $wp_customize->nav_menus, 'enqueue_scripts' ) );
remove_action( 'customize_register', array( $wp_customize->nav_menus, 'customize_register' ), 11 );
remove_filter( 'customize_dynamic_setting_args', array( $wp_customize->nav_menus, 'filter_dynamic_setting_args' ) );
remove_filter( 'customize_dynamic_setting_class', array( $wp_customize->nav_menus, 'filter_dynamic_setting_class' ) );
remove_action( 'customize_controls_print_footer_scripts', array( $wp_customize->nav_menus, 'print_templates' ) );
remove_action( 'customize_controls_print_footer_scripts', array( $wp_customize->nav_menus, 'available_items_template' ) );
remove_action( 'customize_preview_init', array( $wp_customize->nav_menus, 'customize_preview_init' ) );
}
functions.php
/**
* レインドロップステーマの特定のセクション(以下はステータスバー)を非表示にする例
*/
add_filter('raindrops_customize_args','my_customize');
function my_customize($customize_args){
unset( $customize_args['raindrops_status_bar'] );
return $customize_args;
}