Запрет вывода статей категории на главной странице в WordPress <
По умолчанию на главной странице WordPress отображаются последние, опубликованные в блоге записи. Иногда возникает необходимость, чтобы некоторые статьи определенной категории (рубрики) не выводились на главную страницу.
Для того чтобы запретить вывод статей определенной категории необходимо добавить код в файл functions.php. Редактирование файла осуществляется через панель управления сайтом WordPress.
Войдите в редактор темы. Внешний вид — редактор- выберите тему для изменения- справа выберите «функции темы (functions.php)
В самый низ файла вставьте следующий код:
/*------------------------------------- запрет вывода статей категории --------------------------------------*/ function removeFromHome($query) { if ($query->is_home) {$query->set('cat','-id');} return $query; } add_filter('pre_get_posts','removeFromHome'); /*------------------------------------- запрет вывода статей категории --------------------------------------*/
Обновите файл. Теперь статьи категории 27 не будут выводится на главной странице.
Если Вы хотите исключить несколько категорий, то добавьте их в код как показано ниже:
{$query->set(‘cat’,’-27 -28′);}
Через пробел, укажите необходимые категории.
2. Нам понадобится узнать порядковый номер рубрики, который присвоен рубрике в базе данных (идентификатор или просто id).
Для этого зайдите в админку и перейдите в раздел Записи – Рубрики.
В списке категорий наведите курсор мыши на название той рубрики, которую хотите скрыть.
В браузере внизу в информационной строке вы увидите url-адрес ссылки такого типа:
http://wordpress-life.ru/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=7&post_type=post
Найдите в этой строке значение параметра tag_ID. В данном случае tag_ID=7 – это и есть id рубрики. Т.е. в данном примере id = 7.
Также, id рубрики WordPress можно узнать непосредственно в базе данных в таблице wp_terms в поле term_id.
3.
Скрыть рубрику в WordPress можно глобально, т.е. убрать её вывод везде, где выводятся рубрики, либо локально – убрать, например, в хедере, но оставить в сайдбаре.
Начнем с локального скрытия названия категории.
Например, нужно убрать рубрику с id=7 из хедера.
Открываем файл /wp-content/themes/ваш_шаблон/header.php
Находим в файле вызов функции wp_list_categories. Именно эта функция осуществляет вывод списка категорий
Вот такая строка:
Найдите в этой строке параметр exclude=1. Вот туда нужно добавить id нашей, исключаемой из вывода, рубрики. Т.е. должно быть exclude=1,7.
Единица – это id рубрики “Без категории” – эта рубрика присутствует в WordPress по умолчанию после установки.
После редактирования должно получиться вот так:
Таким образом, мы убрали из хедера рубрику с порядковым номером 7.
4
Теперь, если вам нужно скрыть рубрику по всему сайту, то нужно тоже самое проделать и в остальных местах, где выводится список категорий: сайдбар, футер. Для этого нужно произвести такие же изменения, соответственно, в файлах sidebar.php, footer.php
Также можно глобально скрыть вывод конкретной рубрики изменением файла ядра WordPress. Тогда вам достаточно будет отредактировать всего один файл, но это изменение может исчезнуть после обновления WordPress.
В файле /wp-includes/category-template.php, найдите ту же функцию wp_list_categories. В теле этой функции в начале есть список параметров со значениями по умолчанию. Вот там найдите параметр exclude и присвойте ему нужное значение: 'exclude'='7' (см. строку 10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
function wp_list_categories( $args = » ) {
$defaults = array(
‘show_option_all’ => », ‘show_option_none’ => __(‘No categories’),
‘orderby’ => ‘name’, ‘order’ => ‘ASC’,
‘style’ => ‘list’,
‘show_count’ => 0, ‘hide_empty’ => 1,
‘use_desc_for_title’ => 1, ‘child_of’ => 0,
‘feed’ => », ‘feed_type’ => »,
‘feed_image’ => », ‘exclude’ => ‘7’,
‘exclude_tree’ => », ‘current_category’ => 0,
‘hierarchical’ => true, ‘title_li’ => __( ‘Categories’ ),
‘echo’ => 1, ‘depth’ => 0,
‘taxonomy’ => ‘category’
);
|
После такого изменения, где бы вы не вызывали функцию wp_list_categories (в хедере, сайдбаре или футере), она всегда будет исключать из вывода категорию номер 7.
Спасибо http://wordpress-life.ru/skryit-rubriku-v-wordpress.html