Применение кода в Wordpress functions.php только к одной категории - PullRequest
6 голосов
/ 18 июля 2011

Есть ли способ ограничить следующий код, который я добавил в мой файл functions.php, чтобы он применялся только к одной категории wordpress?

<?php remove_filter('the_content', 'wpautop'); ?>

Я попробовал это, но это не сработало:

<?php if (in_category('work')) { remove_filter('the_content', 'wpautop'); } ?>

Я должен также добавить, что я решил эту проблему, поместив код непосредственно в шаблон определенной категории, но я бы предпочел оставить фильтр в моем файле функций.

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 мая 2013

Я полагаю, вы захотите подключиться к действию pre_get_posts . Он срабатывает сразу после разбора строки запроса. Некоторые, но не все условия настроены. Вы можете проверить, является ли in_category () одним из них, но я не думаю, что это имеет значение. Зачем? Рад, что ты спросил.

Хук собирается передать вам объект запроса, который имеет свойство 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' );

Это полностью не проверено. Но так как вы, кажется, знаете, что делаете, этого должно быть достаточно, чтобы поставить вас на правильный путь.

0 голосов
/ 28 апреля 2013

Ваш functions.php не знает о текущем запросе, как страницы вашего индекса и категории.Чтобы этот код работал в functions.php, вам нужно взять необработанные серверные переменные и проанализировать их, чтобы загрузить функциональность wp_query, соответствующую текущему URL:

$url = explode('?', 'http://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$ID = url_to_postid($url[0]);

Как только вы получитеID вы можете сделать цикл запроса и запустить свой фильтр на основе категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...