通过子主题在父主题类中修改方法?

时间:2017-05-31 02:54:41

标签: php wordpress

经过大量的反复试验和研究后,我又回到了原点。 简单地说我想要做的就是通过子主题function.php编辑一个在父主题类中的函数,但是类本身不可插入:(。

有人可以通过儿童主题给我正确的方法来覆盖课程吗?甚至可以在不可插拔的类上使用吗?

该类本身扩展了另一个类,基类为IS PLUGGABLE。

class Fre_ReviewAction extends AE_Base --> Class attempting to overrite
----------------------------------
if (!class_exists('AE_Base')) {
class AE_Base --> Base class IS PLUGGABLE?

是否可以通过子主题函数重写.php?

1 个答案:

答案 0 :(得分: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
  }

}