Чтобы исключить записи отдельной категории своей таксономии в WordPress, вам потребуется использовать функцию pre_get_posts
и добавить к ней параметр tax_query
. Вот подробное объяснение, как это сделать:
1. Откройте файл functions.php
вашей темы (обычно находится в папке wp-content/themes/your-theme-name/
).
2. Найдите или создайте функцию exclude_category_from_taxonomy
, в которой мы будем работать с объектом запроса ($query
).
function exclude_category_from_taxonomy($query) { if ( ! is_admin() && $query->is_main_query() && $query->is_tax('your-taxonomy-name') ) { $tax_query = array( array( 'taxonomy' => 'your-taxonomy-name', 'field' => 'slug', 'terms' => 'excluded-category-slug', 'operator' => 'NOT IN' ) ); $query->set( 'tax_query', $tax_query ); } } add_action( 'pre_get_posts', 'exclude_category_from_taxonomy' );
В этом примере мы создали функцию exclude_category_from_taxonomy
, которая будет выполняться перед каждым запросом записей (исключая административную панель и не основные запросы).
3. Замените 'your-taxonomy-name'
на реальное название вашей таксономии, от которой вы хотите исключить записи.
4. Замените 'excluded-category-slug'
на реальный идентификатор (slug) категории, которую вы хотите исключить.
После сохранения изменений в файле functions.php
, WordPress будет исключать записи, принадлежащие указанной категории в вашей таксономии. Вы можете настроить этот фильтр для любых пользовательских таксономий и категорий, изменяя названия и идентификаторы в коде выше.