WordPress Remove_Filter不工作

时间:2021-09-16 作者:Ebi Arad

网站日期已从Gregorian日期更改为Jalali日期,并带有一个插件,这很好。

if (get_locale() == \'fa_IR\')  {
add_filter(\'wp_date\', \'wpp_fix_i18n\', 10, 4);
}
现在我希望只有当网站的语言是波斯语(fa\\u IR)时,网站的日期才改为Jalali。我添加了这个代码,但它不起作用。

if (get_locale() != \'fa_IR\')  {
remove_filter(\'wp_date\', \'wpp_fix_i18n\', 10, 4);
}

1 个回复
最合适的回答,由SO网友:Santiago Cerro López 整理而成

“The”;删除过滤器“;函数仅接受3个参数:挂钩名称(“wp\\u date”),回调函数(“wpp\\u fix\\u i18n”)和优先级(10)。您正在使用4个参数。

我相信你的问题与执行生命周期有关。您正在尝试在创建筛选器之前删除它。

要解决这个问题,请将函数包装在主题函数的init hook中。php以确保加载插件(并添加过滤器):

function mytheme_fix_date_issue () {
    if (get_locale() != \'fa_IR\')  {
        remove_filter(\'wp_date\', \'wpp_fix_i18n\', 10);
    }
}
add_action(\'init\', \'mytheme_fix_date_issue\');

相关推荐

Search with filters

我想在搜索表单中创建三个过滤器,其中包括三个不同的过滤器(标签、类别和帖子)。是否可以创建这些过滤器?如果可能的话,意味着我如何创建它?基本上,我不擅长PHP。所以,请帮我解决这个问题。谢谢