通过子主题修改父主题类中的方法?
问题描述:
经过大量的反复试验和研究后,我又回到了原点。 简单地说,我正在尝试做的是编辑一个功能,这是在父主题中的一个类中通过子主题function.php,但是类本身不可插入:(。通过子主题修改父主题类中的方法?
有人可以给我正确的方式overrite通过儿童主题类?它甚至有可能在非可插拔类?
本身扩展了另一个类的类和基类是可插拔。
class Fre_ReviewAction extends AE_Base --> Class attempting to overrite
----------------------------------
if (!class_exists('AE_Base')) {
class AE_Base --> Base class IS PLUGGABLE?
能把它通过儿童主题功能被改写。 php?
答
是的,您可以这样做,首先您需要删除您在父/基类中使用的操作。
function remove_add_class_actions() {
//remove some action stuff , for example I used woocommerce action
remove_action('some_action_hook', array($GLOBALS['someglobals'], 'functiontooverrideinchildclass'), 10, 3);
//add action by child class m in your case it will be Fre_ReviewAction
add_action('some_action_hook', array( new Fre_ReviewAction, 'functiontooverrideinchildclass'));
}
add_action('init','remove_add_class_actions');
后,您需要定义子类扩展父,
class Fre_ReviewAction extends AE_Base {
function __construct() {
//parent::__construct();
}
function functiontooverrideinchildclass(){
//your stuff here
}
}
我不明白如何应用此这是否都去的functions.php? – Elevant
而且我找不到要删除的动作 – Elevant