子主题删除函数中的父过滤器

时间:2019-08-14 作者:user2821847

设置父/子主题。父主题有一个要删除的筛选器。如何在子主题函数中删除这些过滤器?

/** --------- */
/** COMMENTS */
/** --------- */

/** FORMAT COMMENT REPLY FIELD */
add_filter(\'comment_form_field_comment\', function () {
\\XPress::registry()->loadJS(\'themehouse/xpress/comment.js\');
return \'<div data-xf-init="xpress-comment-form">\' . \\XPress::getEditorInstance(\'comment_content\', \'comment\') . \'</div>\';
}, 8);

/** READ XF FROALA EDITOR CONTENT ON SAVE */
add_filter(\'preprocess_comment\', function ($data) {
$data[\'comment_content\'] = \\XPress::getEditorContent(\'comment_content\') ?: $data[\'comment_content\'];

if (empty($data[\'comment_content\']) || $data[\'comment_content\'] === \'x\') {
wp_die(\\XPress::xlink()->phrase(\'xpress_empty_comment_error\'), \\XPress::xlink()->phrase(\'xpress_empty_comment\'));
}

return $data;
}, 99, 1);
例如,在子主题函数中使用如下代码:

function remove_language_attributes() {
remove_filter(\'language_attributes\', \'add_opengraph_doctype\');
}
add_filter(\'init\', \'remove_language_attributes\');

2 个回复
SO网友:Wordpress Dev

在子主题的函数中。php

<?php
remove_filter(\'comment_form_field_comment\',99,1); ?>

SO网友:Andy Mardell

这些过滤器是使用匿名函数添加的,所以您不能remove_filter(\'filter_name\', \'function_name\') 因为function_name 实际上并不存在。

您可以通过使用另一个匿名函数并赋予它相同的优先级来重写匿名函数。例如:

remove_filter( \'comment_form_field_comment\', function(){}, 8 );

可在此处找到更多信息:Remove Actions/Filters added via Anonymous Functions

相关推荐

使用Add_Filters()、Apply_Filter()、Add_action()和do_action()扩展插件

假设我正在开发一个与预订相关的插件。下次我想在那个插件上添加一个附加组件来支付。然后,我为贝宝支付添加了另一个附加组件。假设下面是html中的支付网关UI界面<div class=\"payments-options\"> <div class=\"bank-payment\"></div> <div class=\"cash-on-delivery\"></div> <!--- Here i