簡體   English   中英

如何在Wordpress中覆蓋插件類的功能?

[英]How can I override function of plugin 's class in Wordpress ?

我想在插件事件管理器的EM_Tickets類中覆蓋函數get_post()

class EM_Tickets extends EM_Object implements Iterator{
/**
 * Retrieve multiple ticket info via POST
 * @return boolean
 */
function get_post(){
    // something here

    return apply_filters('em_tickets_get_post', count($this->errors) == 0, $this);
    }
}

所以我創建了自己的插件,並在下面的代碼中放上了代碼,但是沒有運氣,盡管我閱讀並遵循了一些類似手冊,但不知道為什么它不起作用? 是否可以在PHP類中替換函數?

class EM_Tickets_Child extends EM_Tickets implements Iterator{

    public function get_post(){
        file_put_contents('log.txt', 'in child class', FILE_APPEND | LOCK_EX);
        //something here
    }           
}

您在原始代碼上有一個過濾器(apply_filters)。 您只需要鈎子並創建一個函數來覆蓋返回值,無需擴展插件類,但這是另一種方法。

add_action('em_ticket_get_posts', array('Em_tickets', 'my_new_get_post), 10, 2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM