簡體   English   中英

自定義插件中的替代功能

[英]Override function in custom plugin

我正在通過此操作使用插件:

add_filter( 'pre_comment_approved', array( $this, 'pre_save_review' ), 10, 2 );

我已經編寫了一個插件來對我的網站進行一些調整。 主要是REST API定制。

我想覆蓋,顛覆,忽略,刪除該過濾器。 現在,只需在pre_save_review函數的第一行上return就可以使它“工作”。

我試過了:

remove_action( 'pre_comment_approved', 'pre_save_review');

...但是我想知道是否存在一些命名空間問題。 我對PHP不太了解,所以我不知道如何引用其他文件/插件中的類,我想這就是問題所在。

謝謝!

您可以使用wordpress函數“ remove_all_filters”刪除所有過濾器

remove_all_filters('pre_comment_approved');

它還具有第二個參數來傳遞優先級號,因為該優先級號被添加為10,因此它是:

remove_all_filters('pre_comment_approved', 10);

參考remove_all_filters

您將為此使用remove_filter函數。

請參閱此處的文檔中的示例: https : //codex.wordpress.org/Function_Reference/remove_filter

如果從類內部(例如通過插件)添加了過濾器,則刪除過濾器將需要訪問類變量。

global $my_class;
remove_filter( 'the_content', array($my_class, 'class_filter_function') );

因此,請嘗試以下方法;

global $this;
remove_filter( 'pre_comment_approved', array( $this, 'pre_save_review' ) );

暫無
暫無

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

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