你必须知道孩子的主题functions.php
已加载before 父主题functions.php
.
这意味着在儿童主题中functions.php
父主题类还不可用,因此会出现致命错误。
如果类位于父主题中functions.php
您可以使用\'after_setup_theme\'
定义父主题类时要等待的挂钩:
add_action(\'after_setup_theme\', function() {
// assuming class-foo.php is the file that contains your Foo class
require_once get_stylesheet_directory() . \'/class-foo.php\';
});
然而,上面的代码可能不起作用,因为它假设父主题类在父主题
functions.php
但如果使用不同的钩子加载该类,则必须等待该钩子被激发,而不是
\'after_setup_theme\'
.
例如,如果父主题包含以下内容:
add_action(\'init\', function() {
// assuming class-optimizepress-default-asset.php is the file that contain the class
require_once get_template_directory() . \'/class-optimizepress-default-asset.php\';
});
你需要等一下
\'init\'
在加载类之前激发钩子。在这种情况下,您可以使用相同的
\'init\'
具有较低优先级的挂钩:
add_action(\'init\', function() {
require_once get_stylesheet_directory() . \'/class-foo.php\';
}, 99); // default priority is 10, higher number means lower priority
总之,没有适用于所有类和所有主题的代码,您必须查看父主题代码,以了解要使用哪个挂钩才能确保父主题类可用。