Wordpress删除子主题中的父自定义程序设置

时间:2017-01-31 22:02:43

标签: php wordpress

在我的父主题 functions.php文件中,一些自定义程序设置添加如下:

class Ichi_Customizer extends Youxi_Customize_Manager {

    /**
     * Constructor
     */
    public function __construct() {
        parent::__construct();

        add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_control_scripts' ) );

        add_action( 'customize_register', array( $this, 'color_customizer' ) );

        add_action( 'customize_register', array( $this, 'general_customizer' ) );

        add_action( 'customize_register', array( $this, 'social_customizer' ) );

        add_action( 'customize_register', array( $this, 'typography_customizer' ) );

我想在我的子主题中删除其中一些,而不编辑我的父函数.php。我试图从我的子主题 functions.php中删除自定义设置,如下所示:

// Remove settings from parent theme customizer 
function remove_custom( $wp_customize ) {
  remove_action( 'customize_register', array( $this, 'color_customizer' ) );
}

add_action( 'customize_register', 'remove_custom', 1000 );

这不会删除所需的自定义程序设置。我错过了什么?

更新

尝试这种替代方法,覆盖整个父函数,如下所示:

add_action( 'after_setup_theme', function() {

    class Ichi_Customizer extends Youxi_Customize_Manager {

        /**
         * Constructor
         */
        public function __construct() {
            parent::__construct();

            remove_action( 'customize_register', array( $this, 'color_customizer' ) );



        }
    }

$GLOBALS[ 'youxi_customize_manager' ] = new Ichi_Customizer();


}, 42 );

然而,这也不起作用!

1 个答案:

答案 0 :(得分:0)

我认为这可以帮助你...

更改

function remove_custom( $wp_customize ) {
  remove_action( 'customize_register', array( $this, 'color_customizer' ) );
}
add_action( 'customize_register', 'remove_custom', 1000 );

function remove_custom( $wp_customize ) {
  remove_action( 'customize_register', array( $this, 'color_customizer' ) );
}
add_action( 'after_setup_theme', 'remove_custom', 0 );