WP 4.5隐藏核心定制器部分

时间:2016-04-29 作者:Brigante

自WP 4.5以来,对自定义程序隐藏核心组件的方式发生了更改。已从$wp\\u customize->remove\\u panel()更改为自定义\\u加载的\\u组件。

https://developer.wordpress.org/reference/hooks/customize_loaded_components/

上面链接中的两个示例可以使用,但如果我在自定义程序的任何其他核心部分(如站点标识(ID:title\\u tagline)或标题图像(ID:Header\\u Image))上尝试,则无法使用。

工程:

function hn_remove_nav_menus_panel( $components ) {
        var_dump($components);
        $i = array_search( \'nav_menus\', $components );
        if ( false !== $i ) {
            unset( $components[ $i ] );
        }
        return $components;
    }
    add_filter( \'customize_loaded_components\', \'hn_remove_nav_menus_panel\' );
不工作:

function hn_remove_title_tagline_panel( $components ) {
        $i = array_search( \'title_tagline\', $components );
        if ( false !== $i ) {
            unset( $components[ $i ] );
        }
        return $components;
    }
    add_filter( \'customize_loaded_components\', \'hn_remove_title_tagline_panel\' );
我曾尝试var\\u转储($组件);同样,但只能看到该数组中的nav\\u菜单和小部件,这将解释为什么只能删除这两个组件。

任何关于如何隐藏其他部分的提示都将不胜感激。

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

如果您检查WP_Customizer, 你会看到没有title_taglineheader_image 过滤器运行时:

final class WP_Customize_Manager {
    protected $components = array( \'widgets\', \'nav_menus\' );

    public function __construct() {
        // a bunch of requires

        $components = apply_filters( \'customize_loaded_components\', $this->components, $this );
    }
}
使用customize_register 在WP添加部分后,用钩子将其移除:

function wpse_225164_remove_core_sections( $wp_customize ) {
    $wp_customize->remove_section( \'title_tagline\' );
    $wp_customize->remove_section( \'header_image\' );
}

add_action( \'customize_register\', \'wpse_225164_remove_core_sections\' );

相关推荐

Apply_Filters()对所需的参数进行切片

我正在尝试向WooCommerce订单中的每个退款行添加一个按钮(其功能超出了这个问题的范围,足以说明它需要退款id作为参数)。我发现这些行是在woocommerce\\includes\\admin\\meta Box\\views\\html订单退款中创建的。无法重写的php。然而,有一项行动:do_action( \'woocommerce_admin_order_item_values\', null, $refund, $refund->get_id() ); 这似乎非常适合我的