在我的父主题 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 );
然而,这也不起作用!
答案 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 );