• Главная
  • Карта сайта
Не найдено

Как скрыть статьи отдельных категорий с главной страницы WordPress

Опубликовано: 01.09.2018

Вступление

По умолчанию все статьи со всех разделов блога WordPress публикуются на главной странице. Если вы, конечно, в настройках указали главную страницу, как основную. Иногда это не очень удобно. Например, на этом блоге есть небольшие статьи и таблицы, которыми  не хочется засорять главную страницу блога.

Скрыть статьи отдельных категорий с главной страницы WordPress можно, добавив в код шаблона функцию, которая будет фильтровать категории по их ID для отображения на главной.

Важно! При работе, редактировании любого файла в структуре WordPress, перед коррекцией любого файла сделайте его резервную копию и сохраните ее на своем компьютере. В случае неудачного редактирования, можно будет восстановить файл в виде до редакции.

Редактирование кодов всех файлов WP делайте в текстовых редактор, типа Notepad++ или простом стандартном «Блокноте» Windows. Не пользуйтесь для редактирования кодов WP редакторами типа Microsoft word.

Как узнать 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/ ) Он упростит работу с системными файлами до безопасной.   

Второй альтернативный способ

Установить плагин для управления показом статей на страницах сайта.

©www.wordpqess-abc.ru

Другие статьи раздела: CMS WordPress

Статьи связанные по теме:

Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss