2017-05-31 48 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