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

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 раздела, который следует исключить из вышеприведенных категорий.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

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

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