2017-05-31 12 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'); 

私は、これはすべて、これはのfunctions.phpに行くん適用する方法を理解していない親、

class Fre_ReviewAction extends AE_Base { 
    function __construct() { 
    //parent::__construct(); 
    } 

    function functiontooverrideinchildclass(){ 
    //your stuff here 
    } 

} 
+0

を拡張子クラスを定義する必要がありますか? – Elevant

+0

そして私は同様に削除するアクションを見つけることができません – Elevant

関連する問題