有没有办法限制我添加到我的 functions.php 文件中的以下代码,使其仅适用于单个 wordpress 类别?
<?php remove_filter('the_content', 'wpautop'); ?>
我试过了,但似乎没有用:
<?php if (in_category('work')) { remove_filter('the_content', 'wpautop'); } ?>
我还应该补充一点,我通过将代码直接放在特定类别模板中解决了这个问题,但我更愿意将过滤器保留在我的函数文件中。
谢谢!
最佳答案
我相信你会想 Hook 到 pre_get_posts
action .它在解析查询字符串后立即触发。设置了一些但不是所有的条件。您可以测试 in_category() 是否是其中之一,但我认为这不重要。为什么?很高兴你问。
钩子(Hook)将向您传递查询对象,该对象具有属性 category_name
。您所要做的就是检查它是否有您的类别,如果有则启动您的过滤器。像这样:
function ns_function_name($wpq){
if($wpq->category_name == 'work'){
remove_filter('the_content', 'wpautop');
}
}
add_action( 'pre_get_posts', 'ns_function_name' );
这是完全未经测试的。但既然你似乎知道自己在做什么,这应该足以让你走上正确的道路。
关于php - 将 Wordpress functions.php 中的代码仅应用于一个类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6728067/