php - 将 Wordpress functions.php 中的代码仅应用于一个类别

标签 php wordpress

有没有办法限制我添加到我的 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/

相关文章:

php - 在 Woocommerce 中的订单详细信息表之前更改付款方式位置

php - 在 WooCommerce 我的账户订单列表中显示产品缩略图

php - WordPress 选项表行数在刷新时不断变化?

php - 如何在 Yii 中建立以逗号分隔的多个 ID 的关系

php - Swift4 - 错误域=NSCocoaErrorDomain 代码=4865

php - 有没有办法将 PHP SimpleXMLElement 添加到另一个 SimpleXMLElement?

html - 什么是 HTML 和 CSS 图像的最佳实践

php - 使用 PHP cURL 缓存

php - 为什么php通过mcrypt_encrypt()生成的密文长度与C通过openssl加密库生成的密文长度不同

javascript - Utm 参数杀死我们的分页