Глобальное удаление категорий из других категорий и тегов

Admin PHP, WordPress

Одна и та же статья может находится в разных разделах сайта на WordPress. Иногда требуется, чтобы статьи определённого раздела не выводились в конкретных других разделах. При этом требуется, чтобы в сами эти разделы эта статья входила.

Зачем может понадобится такая «каша»? Ведь можно сразу не добавлять статью в раздел, в котором не хочется её выводить.

Как ни странно, это всё же может потребоваться. Иногда необходимо статью пометить названиями разделов, потому что она к ним соотносится. И эта статья будет видна, скажем на главной странице, но в других конкретных разделах её показывать не нужно.

Для такой задачи используем следующий код в файле functions.php:

// Удаление категорий 71 из других категорий и тегов
function exclude_category( $query ) {
if ( $query->is_category(array(name_cat1,name_cat2)) || is_tag() )
{
$query->set('cat', '-71');  
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

где:
name_cat1,name_cat2 — перечисленные навания (slug) категорий в которых требуется статью не отображать.

-71 — ID раздела, который следует исключить из вышеприведенных категорий.

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

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Глобальное удаление категорий из других категорий и тегов"