Вступление
По умолчанию все статьи со всех разделов блога WordPress публикуются на главной странице. Если вы, конечно, в настройках указали главную страницу, как основную. Иногда это не очень удобно. Например, на этом блоге есть небольшие статьи и таблицы, которыми не хочется засорять главную страницу блога.
Скрыть статьи отдельных категорий с главной страницы WordPress можно, добавив в код шаблона функцию, которая будет фильтровать категории по их ID для отображения на главной.
Важно! При работе, редактировании любого файла в структуре WordPress, перед коррекцией любого файла сделайте его резервную копию и сохраните ее на своем компьютере. В случае неудачного редактирования, можно будет восстановить файл в виде до редакции.
Как узнать ID категории, раздела WordPress
Чтобы скрыть статьи отдельных категорий с главной страницы WordPress для начала нужно узнать ID (уникальный идентификационный номер) разделов которые нужно исключить. Для этого достаточно открыть любой раздел в редакторе, навести на название нужного раздела курсор и внизу посмотреть всплывшую строку браузера. По шагам:
- Входите в консоль;
- В меню консоли нужен пункт: Записи → Рубрики
- В открывшемся окне редактора разделов, наводим курсор на нужный раздел;
- Внизу в адресе редактируемого раздела смотрим цифры после ID= ,и до знака &. Это и есть ID раздела.
Два способа скрыть статьи отдельных категорий с главной страницы WordPress
P.S. Не рекомендую первый способ. Он не оправдано сложен (два шага) и слишком привязан к шаблону сайта, можно промахнуться с внесением кода.
Скрыть статьи отдельных категорий с главной страницы WordPress можно двумя способами. Первый способ, вставить код указанный ниже в файл index.php. второй способ, вставить другой код в файл functions.php. Второй работает лучше.
Чтобы исключить посты отдельных категорий с главной страницы блога, создадим фильтр-функцию и внесем ее в файл index.php. Код следующий:
<?php if ( is_home() ) { query_posts( 'cat=-77' ); } ?>
, где цифра 77, это ID исключаемой рубрики.
Исключаем посты нескольких разделов с главной страницы WordPress
Для исключения нескольких категорий блога, нужно в фильтрующем коде перечислить все ID исключаемых разделов. Например:
<?php if ( is_home() ) { query_posts( 'cat=-3,-79' ); } ?>
где убираем все посты разделов с ID 79 и 3. ID категорий перечисляются через запятую, со знаком минус.
Можно скрыть отдельные посты с главной страницы сайта:
<?php if ( is_home() ) { query_posts( 'p=5' ); } ?>
где 5 это ID поста, исключаемого с главной страницы.
Делаем изменения в файле index.php
Остается последний шаг. Нужно вставить код в файл index.php.
- Открываем редактор в консоли блога.
- В редакторе открываем файл index.php;
- В нем ищем [div id=”content”];
- В границах этого div, после кода
<?php $options = get_option>
вставляем один из выше показанных кодов.
Недостатки этого способа
У такого способа, исключения разделов и постов с главной страницы блога WP. есть недостатки:
- Важно понимать, что функция query_posts изменяет основной Цикл WordPress.
- Функция не должна использоваться более одного раза на странице.
- Функция query_posts увеличивает количество запросов в Базу данных, что увеличит время загрузки сайта с объемными базами данных.
Первый альтернативный вариант (лучший)
Избежать эти недостатки, и при этом исключить отдельные категории с главной можно вот таким кодом, вставив его в конец файла functions.php. Работает безотказно, пока до версии до версии 4.3.1.
function exclude_cat($query) { if ($query->is_home) {$query->set('cat',' -77, -113, -137, -204');} // id категории 77,113,137,204 return $query; } add_filter('pre_get_posts','exclude_cat');
Чтобы исключить с главной отдельные теги
function exclude_post($query) { if ($query->is_home) { $tags = array('6', '67', '83'); // id тегов $query->set('tag_not_in', $tags);} return $query;} add_filter('pre_get_posts','exclude_post');
Чтобы убрать с главной отдельные статьи
function exclude_post($query) { if ($query->is_home) {$query->set('post__not_in', array(115, 118) );} // id записи (поста) return $query; } add_filter('pre_get_posts','exclude_post');
Совет по делу! Чтобы избежать ручного редактирования основного файла сайта (functions.php) и не потерять сайт из-за ошибки, установите плагин Code Snippets (https://ru.wordpress.org/plugins/code-snippets/) Он упростит работу с системными файлами до безопасной.
Второй альтернативный способ
Установить плагин для управления показом статей на страницах сайта.
- Simply Exclude (https://wordpress.org/plugins/simply-exclude/): отличный плагин с одним недостатком, НЕ обновлялся более года.
- Читать более свежую статью: Как убрать посты и категории из определенных частей блога
©www.wordpqess-abc.ru
Другие статьи раздела: CMS WordPress
- Аналоги WordPress: Тильда
- Как изменить WordPress шаблон под себя: проверка верстки шаблона правилам SEO
- Структура статьи WP , тег h1 и h2 в шаблоне WordPress
- Как убрать ссылку на author wordpress
- Jetpack плагин: итоги 2017 и перспективы 2018 годов