2017-05-31 52 views
0

经过大量的反复试验和研究后,我又回到了原点。 简单地说,我正在尝试做的是编辑一个功能,这是在父主题中的一个类中通过子主题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?

回答

0

是的,您可以这样做,首先您需要删除您在父/基类中使用的操作。

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 
    } 

} 
+0

我不明白如何应用此这是否都去的functions.php? – Elevant

+0

而且我找不到要删除的动作 – Elevant