代码之家  ›  专栏  ›  技术社区  ›  Alena

重写子主题中的父主题类函数

  •  0
  • Alena  · 技术社区  · 6 年前

    以下是示例代码:

    class A extends B{
       function __construct(){
          $this->add_ajax('sync_post_data', 'need_to_override');
       }
       //other functions
       function need_to_override(){
          //function code
       }
    
    }
    

    类B扩展了类C,类C是根类,其中 add_ajax 已定义。

    我试过的:

    1. 其次,我尝试删除ajax操作并添加自定义操作。它抛出500个内部服务器错误。

      remove_action( 'wp_ajax_sync_post_data', 'need_to_override' );
      add_action( 'wp_ajax_sync_post_data', 'custom_function' );
      
      function custom_function(){
         //function code with my custom modification
      }
      

    任何帮助请。。。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Atlas_Gondal    6 年前

    您只需在两个简单的步骤中重写该类的方法。

    方法如下:

    1. 打开子主题 functions.php
    2. 创建如下新类:

      add_action( 'after_setup_theme', function() {
      
      
         class D extends A{
      
            function need_to_override(){
               //original function code with your custom modifications
            }
      
         }
      
         new D();
      });
      

    附言:会有用的,但我不确定这是不是最好的方法!