我正在尝试扩展以Parent为主题的类,但是当我尝试将类添加到functions.php文件中时出现致命错误,表示未找到父类。我的课是这样的:
class MyClasss extends ParentTheme_Templates {
public static function header() {
$type = ParentTheme_Global::instance()->get_header_type();
get_template_part( 'mycomponents/headers/header', $type );
}
但是我可以在我的模板文件(我在header.php文件中尝试过)中为类使用相同的代码,并且它可以工作,但这不是我认为的正确方法。因此,有没有适当的方法可以做到这一点。我可以在抄本中看到:
与style.css不同,子主题的functions.php与 从父级覆盖其对应项。而是将其加载到 除了父母的functions.php。 (具体来说,它已加载 就在父母提交的文件之前。)
有什么办法可以解决这个问题?
答案 0 :(得分:0)
子主题在父主题之前加载,因此您需要在挂钩中定义该类,该挂钩在父主题加载之后运行,这样就可以扩展父主题类。 after_setup_theme是合乎逻辑的选择。
function mytheme_includes() {
require_once get_theme_file_path( 'includes/class-my-class.php' );
}
add_action( 'after_setup_theme', 'mytheme_includes' );
感谢@jakept