А как вы оформили вывод постов на главной и в рубриках WordPress? Как исключить записи и категории из главной страницы WordPress, rss ленты, категорий и архивов без плагинов

Данная статья будет продолжением темы по подготовке сайта на WordPress для продвижения в поисковых системах. Ранее уже рассказывалось, как сделать статичный (постоянный) текст на продвигаемых рубриках. Сегодня я покажу Вам как сделать аналогичное, но только на этот раз для Главной страницы сайта, которая, как известно, имеет наибольший вес. Вам останется только написать текст, который и будет помогать при продвижении.

Если Вы пришли с Google или Yandex и пропустили предыдущую статью, то ознакомьтесь ..

Сделать статичный текст на главной странице сайта WordPress можно несколькими способами:

  • при помощи встроенной функции WordPress (читаем статью ). Как видите - дело двух секунд.
  • второй способ предполагает размещение определенного кода в файле index.php или home.php (название зависит от шаблона Вашего сайта)
  • просто выбрав в админке нужную страницу в Настройках (скриншот ниже)
  • создав отдельный шаблон для Главной в файлах темы (понадобятся знания PHP/CSS или помощь специалиста).

Если Вы выбрали первый способ, то не забудьте потом закрыть выбранный пост для индексации, чтобы не было дубля контента. Можете сделать это при помощи robots.txt .

Если выбираете второй способ, то чтобы сделать такое, нужно открыть файл index.php (home.php) и вставить перед функцией вывода всех постов следующее:

произвольный текст или код

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

Этот же код можно использовать и в виджетах, если необходимо отобразить что-либо только на главной странице сайта. Для подобного отлично подойдет плагин .

Если не поняли , перед чем вставлять предложенный мной выше код, то вот небольшая подсказка: у меня в шаблоне за отображение информации на Главной странице отвечает файл index.php. В нем есть вот такой код:

>

< div id = "post- " >

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

Здравствуйте, уважаемые читатели блога сайт. Наверное вы замечали, что на разных блогах главные страницы могут выглядеть по-разному .

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

На главной странице (и в рубриках) WordPress блога могут выводиться посты целиком, либо их вступительные части до тега More, либо совсем короткие анонсы с миниатюрой поста или даже вообще без миниатюры. В конце концов возможен вариант одних лишь заголовков, либо полная перекройка принятых в этом движке стандартов.

Про вариант полной перекройки я говорить не буду, а вот про стандартные возможности , которые нам предоставляет этот , постараюсь рассказать во всех подробностях. В принципе, о многом из того, что я сейчас скажу, мне уже приходилось писать, но все это было в отдельных публикациях, так что я и сам сейчас с трудом могу вспомнить где именно и что находится (пользуюсь для этой цели ). Надеюсь, что будет интересно.

Вид главной страницы и рубрик в WordPress по умолчанию

Как вы, наверное, знаете, если при написании поста в WordPress никаких особых телодвижений не предпринимать, то он, скорее всего, будет полностью отображаться на главной странице, а сразу под ним будет идти предыдущий пост, который вы опубликовали ранее. Почему я сказал «скорее всего»? Потому что вывод постов на главной по большому счету зависит от , а они бываю разными, в том числе и довольно-таки экзотическими.

Но по большей части для вывода постов на главной в файле index.php (именно этот файл-шаблон используется для формирования вида главной страницы в Вордпресс — смотрите статью по приведенной выше ссылке про темы) используется конструкция типа:

Именно благодаря ей и будут на главной выводиться статьи целиком, если только вы не используете замечательный , которому я целую статью в свое время посвятил. При просмотре полной версии статьи он никак не отражается на ее внешнем виде, но вот на главной уже будет выводиться не пост целиком, а только та его часть, которая находится выше тега More, а вместо самого тега будет выводиться надпись типа «Читать полностью».

Лично я пишу статьи без использования визуального редактора, и этот тег, вставленный в текст статьи (между абзацами), выглядит так:

Однако, можно поизгаляться и написать, например, вот так:

Думаю, что суть понятна — мы создаем с главной ссылку на статью не просто с «Читать подробнее» (одинаковым для всех статьей), а добавляем к нему ключевые слова, по которым вы хотите попасть в Топ поисковых систем. Не скажу, что этот способ стопроцентно приносит пользу, но некоторые блогеры (в том числе и я до некоторых пор) его используют.

до разбиения ее на страницы, задается в настройках . Для этого вам нужно будет зайти в нее, выбрать из левого меню пункты «Настройки» - «Чтение» и поставить в поле «На страницах блога отображать не более» нужное количество материалов (постов).

Какие недостатки можно отметить при данном типе вывода материалов на главную страницу WordPress? В общем-то, их несколько:

  1. Если выводить посты на главной целиком (без тега More), то в глазах поисковых систем у вас на сайте будет наблюдаться дублирование контента, что может привести к снижению трафика на ваш блог из Яндекса и Гугла. Не факт, что так и будет, но вероятность ухудшения в ранжировании будет очень высока. Грубо говоря, поисковики обидятся на вас за то, что вы на разных страницах сайта подсовываете им в индекс одно и то же, что забивает их сервера и приводит к дополнительным расходам.
  2. Опять же, без использования тега More вам придется, скорее всего, серьезно ограничивать число отображаемых на главной постов, чтобы она не была похожа на бесконечную и трудно юзаемую простыню. И даже в этом случае удобство пользования вашим блогом все равно будет не очень высоким.
  3. Если даже использовать тег More, но отдавать на главную очень большой фрагмент поста, то поисковики опять же могут усмотреть пусть и не полное, но частичное дублирование контента. Понятно, что глобального влияния это не окажет, но весь мир SEO строится на сотнях мелочей, которые и определяют вкупе успех или неудачу вашего проекта. Поэтому лучше сразу привыкать делать все «как надо», а не «так сойдет».
  4. Еще хуже ситуация с дублирование контента внутри сайта может стать, если вы и в рубриках, и в архивах тегов (а также и во временных архивах) выводите полные версии постов или их большие куски. Частично эту проблему можно решить закрытием от индексации поисковыми системами, например, временных и теговых архивов с помощью плагина (в приведенной статье описано как это можно сделать), но лучше все же этого не делать.

Есть способ, решающий проблему с дублированием контента при использовании функции the_content. Это специальный тег NOTEASER. Что он делает? При его использовании, на главной будет отображаться только та часть статьи, которая находится выше тега More, а на странице самого поста анонс не будет отображаться вовсе, (только текст, идущий сразу за MORE). Выглядеть конструкция будет так:

Таким образом, вы как бы повышаете уникальность текстов на вашем блоге (избавляетесь от частичного дублирования). Но есть один нюанс, который перевешивает все плюсы от использования NOTEASER. При заходе на страницу поста не с главной или рубрика вашего блога, а с поисковой системы или по прямой ссылке, пользователь вообще не увидит вступительной части, что может вызвать у него недоумение и замешательство.

Вывод постов в рубриках — the_excerpt вместо the_content

Кстати, в рубриках и архивах тегов тоже зачастую используется такой же метод отображения. Т.е. выводятся либо полные версии постов (в порядке убывания их даты создания), либо обрезанные проставленным тегом More фрагменты.

Т.е. используется в шаблоне рубрик (обычно это файл-шаблон archive.php из папки с используемой вами темой оформления) такая же функция, как и для вывода постов на главной:

Посмотреть пример такого вывода постов в рубриках вы можете на блоге Михаила Шакина. Конечно же, изначально все это зависит от той темы оформления, которую вы используете. Но все в вашей власти. Достаточно будет и вывод постов в рубриках станет существенно более юзабельным, при этом значительно уменьшится степень дублирования контента на вашем блоге.

Причем, сделать эту настройку очень просто - достаточно заменить в файле archive.php код функции the_content () на the_excerpt () :

В этом случае от поста останется только его заголовок и небольшое количество первых слов в статье (без форматирования и с удалением имеющихся картинок, гиперссылок и прочей разметки). Сразу оговорюсь, что число слов (или символов) в заголовке, а также число первых выводимых слов поста можно будет ограничить с помощью (как именно объясню чуть ниже).

Как сделать анонсы постов в рубриках WordPress уникальными?

Правда, содержимое анонса поста при использовании функции the_excerpt () может быть заменено содержимым поля «Цитата» , если вы его заполняли при написании статьи (обычно, оно расположено сразу под окном ввода текста). Кстати, данный вариант и снижения дублирования контента, но я его не практикую в силу того, что «не практикую». В общем, банальная лень матушка.

Если области под названием «Цитата» вы под окном ввода текста поста в админке WordPress не наблюдаете, то удалите ваш сайт и переустановите движок заново, а потом перепишите все статьи и займитесь их продвижением. Ну, а если серьезно, то в самом верху админки в ее правой части вы найдете «язычок» с названием «Настройки экрана». Кликнув по нему вы легко сможете активировать нужную вам панель (или убрать лишнюю) простой постановкой или удалением нужной галочки.

Настраиваем вид постов в рубриках при выводе их с помощью the_excerpt

Таким образом, если вы не заполняете для каждого поста поле «Цитата», то при использовании the_excerpt () под заголовком по умолчанию будет. Вас это не устраивает? Как уже упоминал чуть выше, все можно настроить с помощью functions.php. Просто открываете его и добавляете несколько новых строк:

где вместо 30 вы можете поставить нужно вам число слов, отображаемое на страницах рубрик WordPress под заголовками статей.

Если заголовки статей у вас такие же длинные как у меня, то в категориях можно. Для этого вместо the_excerpt () вставьте:

где вместо 7 вы можете поставить нужное вам число слов в заголовке поста, который будет отображаться в рубриках вашего блога. Но чтобы все это дело заработало, в файл functions.php нужно будет добавить следующую функцию:

Function do_excerpt($string, $word_limit) { $words = explode(" ", $string, ($word_limit + 1)); if (count($words) > $word_limit) array_pop($words); echo implode(" ", $words)." ..."; }

Вместо троеточия в последней строке можете поставить что-то другое, но, скорее всего, лучше так и оставить.

Как выводить на главной или в рубриках WordPress только заголовки постов?

Ну, тут совсем все просто. Достаточно будет удалить из файла-шаблона archive.php (отвечает за формирования архивов (категорий, тегов и т.п.), однако его может не быть в вашей теме оформления) или index.php (отвечает за формирование главной страницы блога, но зачастую и всех остальных с помощью условных операторов) функцию the_excerpt или the_content (смотря что именно используется).

Например, у меня за вывод постов в рубриках отвечает такая конструкция:

" rel="bookmark" title="">

Убрав из этой записи:

Я добьюсь того, что в рубриках у меня будут выводиться одни лишь заголовки постов без каких-либо текстов анонса или содержимого поля «Цитата». В ряде случаев такой вариант может быть вполне востребован. По-любому таким образом вы полностью решаете проблему дублирования, озвученную чуть выше по тексту.

Добавляем миниатюры в посты на главной и в рубриках

При использовании the_excerpt пост выглядит не очень привлекательно, ибо из него удаляется все форматирование, ссылки и картинки. В рубриках это худо бедно можно пережить, а вот на главной нужно будет как-то это дело оживить. Для этого как нельзя лучше подойдут миниатюры, которые уже довольно давно прижились в WordPress.

Если у вас не созданы миниатюры для всех постов, то не беда. В свое время у меня их тоже не было, ибо блог я начал вести еще до их появления в WordPress. Однако, существует замечательный плагин Auto Post Thumbnail для их автоматического создания на основе первой картинки в посте (меня такой вариант вполне устроил). После установки заходите в его настройки и жмете на кнопку для создания миниатюрных картинок различных размеров, за основу которых будет браться первая картинка поста.

Полчаса ожидания и миниатюры для всех статей блога будут созданы автоматически. Лепота. Ну, а дальше я просто начал перед публикацией каждой статьи добавлять миниатюру (в правой колонке админки должна быть соответствующая область):

Если у вас этой области «Миниатюра записи» по каким-либо причинам в админке при работе с постом не отображается, то как я и говорил выше — сносите блог и начинайте все заново. Правда я пошел по другому пути — добавил в замечательный файлик functions.php (из папки с используемой вами темой оформления) пару новых строк в самом низу:

И все заработало. Так вот, если проблем с миниатюрами у вас никаких нет, то можете попробовать заменить обычный вывод постов на главной или в рубриках WordPress с помощью the_excerpt на такую вот конструкцию, добавляющую миниатюру в пост :

По умолчанию миниатюра будет прижата к левому краю, а текст будет ее обтекать. Только я еще в свой стилевой файл style.css добавил небольшие от миниатюры, чтобы все это дело лучше воспринималось. Для этого достаточно было добавить лишь одну строчку:

Wp-post-image {padding:3px 15px 5px 5px;}

Однако, на главной я все же оставил вывод постов с помощью the_content и тега More, а в рубриках по-прежнему использую «голый» the_excerpt. Но все же описанный способ я реализовал, но не на совсем типичной для блога странице « ».

По-моему прикольно получилось.

Как сделать главную страницу в WordPress постоянной (статической)?

Собственно, пару лет назад я так и сделал. Тогда у меня на главной (по адресу — https://сайт) отображалась статья, которая сейчас живет на странице 404 ошибки (как ее настраивать смотрите ), посмотреть которую вы сможете, просто добавив какой-нибудь символ с клавиатуры в любой Урл моего сайта (в адресной строке, например, так — https://сайт/404).

Почему я отказался от статической главной страницы? Не знаю. Почему-то. В общем, решил в свое время вернуться к классике, хотя особых предпосылок к этому не было. Однако, давайте поясню как это все реализуется. Собственно, нам нужно решить четыре задачи:


Собственно все. После этого посмотрите на результат и при необходимости доводите до ума содержание уже постоянной (статической) главной страницы вашего блога.

А как вы оформили вывод постов на главной и в рубриках своего блога на WordPress?

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Где скачать WordPress - только с официального сайта wordpress.org
Заголовки статей H1, H2, H3 в Вордпресс, а так же способы отображения категорий (the_content, the_excerpt и другие)
Как в WordPress можно выводить посты из категории с миниатюрами (их создание в Auto Post Thumbnail и catch_that_image)
Настройки блога на WordPress, которые вы должны сделать сразу после его установки Пропало левое меню в админке WordPress после обновления

Стандартный формат блога построен таким образом, что его сообщения (посты) выводятся друг за другом, причем первыми отображаются самые новые, а старые постепенно уходят в архив. Так было в самого начала, но с развитием блоггинга мы могли видеть множество различных вариантов шаблонов wordpress, которые, например, отображают информацию в газетном виде, а сверху демонстрируются так называемые featured (избранные) статьи. Или, например, фото блоги, что практически не содержат текстовой информации, лишь фото, ну и т.п.. Люди понемногу стали отходить от стандартов. И это здорово.

Одним из таких моментов, что может слегка разнообразить ваш блог, есть вывод определенного текста на главной странице блога . То есть читатель заходит на проект site.ru и видит небольшое текстовое описание, о чем собственно сайт, что здесь можно найти и т.п. Иногда такие описания (вступления) помещаются в сайдбар, иногда в шапку блога. Можно поступить несколько иным образом, скомбинировав два варианта:

  • на главной отображается текстовый блок с вступлением;
  • на всех остальных страницах описание блога выводится в сайдбаре, но в уменьшенном (более компактном виде).

Пример можно глянуть в блоге про чай . Я там по дизайну еще не все делал, но как раз сегодня разбирался с выводом текста на главную. Получается, что многие посты на WordPress Inside основаны на личном опыте:)

Кстати, если вам нужно подправить лишь оформление главной, то достаточно будет использовать — она добавит в body соответствующие классы, а дальше вы примените CSS стили.

Для решения нашей задачи мы будем использовать условные операторы wordpress. Но тут есть небольшая «неувязочка», которую раскусить пока не удалось, хотя на финальный результат она не влияет. Фишка в том, что для определения главной страницы блога есть сразу 2 оператора — is_home() и is_front_page(). По описанию в кодексе мне лично до конца и не удалось понять какая между ними разница, термины одинаковые какие-то, поэтому просто практически нашел работающий вариант.

is_home() – условный оператор, который равен TRUE или FALSE и проверяет отображается ли в данный момент «main page» для блога. Сказано еще, что в WordPress 2.1 функция обрабатывается несколько иначе, чем в других версиях и, если выбрана статическая страница в качестве главной, то там могут возникнуть проблемы.

is_front_page() – добавлена в версии 2.5, также является условной, принимает значение TRUE или FALSE в зависимости от того отображается ли в данный момент «front» страница или пост. То есть, судя по всему, функция универсальная и срабатывает в обеих случаях – когда у вас в админке выбрано «отображать последние записи на главной» либо в качестве главной идет «статическая страница».

Если меня читают гуру wordpress, которые разбираются во всех тонкостях системы, то буду признателен за разъяснение. Но пока что могу сказать, что я использую у себя is_front_page() и никаких проблем не наблюдал . На главной при этом выводятся «последние посты». Получаем что-то вроде:

В блогах бывают ситуации, когда на главной странице не помещаются все посты и внизу появляется разбиение на страницы. Что важно (!) система wordpress при переходе по ним не меняет состояние страницы с «главной» на другое — получается главная страница, которая просто не помещается за один раз. Поэтому мы будем использовать еще один важный условный оператор:

is_paged() — реагирует (TRUE или FALSE) на ситуацию, когда все посты архива (для главной, категории, тегов) не помещаются на одной странице и разбиваются на несколько. Причем следует заметить, что это не касается разбиения отдельного поста на страницы с помощью .

Итого — выводим текст только на главной

Чтобы выводить текст на главной и прятать его на любых других страницах я использую код, который добавляю в файл шаблона index.php до выборки последних постов блога have_posts():

Мой блог

Добро пожаловать в мой новый блог

Теперь шаг номер 2 – будем выводить небольшое краткое описание для блога в сайдбаре – для этого открываем файл sidebar.php и добавляем в нужное нам место строки:

О проекте

Короткое описание

О проекте

Короткое описание

Здесь мы видим еще один условный оператор, который может кому-то пригодиться.

is_page (‘ID’) – проверяет отображение страницы с номером, указанным в ID. В моем примере я скрываю краткое описание блога в сайдбаре на странице с id 2, потому что там у меня приготовлена целая статья «о проекте». То есть нет смысла выводить краткое описание, когда все рассказывается непосредственно в блоке контента.

Здравствуйте, ребята!

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

Также узнаете, как исключить целые категории, а не только конкретные записи. Покажу множество вариантов, как с плагинами, так и без них. В общем, все как всегда.

В каких случаях применять?

Нужда исключить некоторые записи, то есть их анонсы, из главной страницы по большей части существует на персональных блогах, когда помимо больших качественных статей для постоянной аудитории стоит еще наполнять ресурс простыми SEO оптимизированными статьями.

Такие статьи вряд ли будут полезны заседателям блога, так как они уже все это знают. Чтобы не засорять главную страницу ненужными анонсами, целесообразней будет не показывать их. В то же время их стоит добавлять на сайт, чтобы привлекать новую аудиторию на ресурс из поисковых систем. Отображение их тоже нужно, но делать это стоит на страницах рубрик и архивов, чтобы новички их могли найти, воспользовавшись навигацией по разделам сайта.

Например, данную статью вы не найдете на главной странице моего блога ни на одной их страницы пагинации (постраничной навигации). В то же время, анонс статьи виден в рубрике "Полезное" и на странице карты сайта "Все статьи".

Без плагина

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

Ниже я буду давать различные куски кода, которые стоит размещать в файле шаблона functions.php.

Исключение конкретных записей по ID

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

function exclude_post($query) { if ($query->is_home) {$query->

if ($query -> is_home )

{ $query ->// id записи (поста)

return $query ; }

В строке 3 числа 1 и 2 являются ID записями, которые не будут отображаться на домашней странице. Прописывать нужно через запятую.

ID записи, страницы и категории узнаете в адресной строке браузера при просмотре через редактор.

Следующий вариант позволит исключить записи из RSS ленты.

Исключение из RSS ленты

Такой код позволит исключить анонсы из новостной ленты и не отправлять их по базе e-mail, если используете сервис подписки и анонсирования с помощью Feedburner.

function exclude_post($query) { if ($query->is_feed) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_feed )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Добавление записей в этом случае и во всех остальных происходит аналогично.

Исключение из рубрик и архивов

Для исключения записей со страниц рубрик, стоит использовать следующий код.

function exclude_post($query) { if ($query->is_category) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_category )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Данный код можно модифицировать и применить исключение из архивов. Нужно во 2й строек заменить функцию is_category на is_archive.

Исключение из страницы поиска

Такой вариант также может потребоваться, если какие-то записи не стоит показывать посетителям, когда они пользуются поиском по сайту. Например, это могут быть различные новостные статьи, которые не несут контента по тематике сайта.

function exclude_post($query) { if ($query->is_search) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_search )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Комбинирование нескольких вариантов

Можно совместить все выше предоставленные варианты и исключить записи из всех типов страниц сразу или выборочно на необходимых.

Если хорошо посмотреть на все коды, то во 2й строек можно увидеть условие, в котором задан параметр типов страниц для отключения отображения в них анонсов записей:

  • is_search
  • is_category
  • is_feed
  • is_home

Можно комбинировать все варианты и исключить записи отовсюду или же на некоторых страницах. Например, для исключений из рубрик и главной стоит разместить в файле functions.php следующий код.

function exclude_post($query) { if ($query->is_category || ($query->is_home)) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_category || ($query -> is_home ) )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Во 2й строке с условием (if - если) прописаны параметры для категорий (is_category) или главной (is_home).

Замечу, что каждый следующий параметр прописывается внутри предыдущего через 2 вертикальных черты и находится в своих скобках. То есть, посмотрев на предыдущий код увидите, что второе условие для главной страницы заключено в свои скобки и находится внутри общих скобок, которые оборачивают первое условие для категорий.

Если стоит добавить какое-то 3е условие, например для страниц архивов, то стоит его добавить внутри скобок с условием для главной (is_home) и прописать через 2 вертикальные черты. На практике это выглядит следующим образом.

function exclude_post($query) { if ($query->is_category || ($query->is_home || ($query->is_archive))) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_category || ($query -> is_home || ($query -> is_archive ) ) )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Таким же принципом добавляйте для исключения и другие типы страниц.

Следующим вариантом исключения записей является исключения целых рубрик (категорий).

Исключение целых категорий

Это очень удобно для лентяев, когда можно просто создать какую-то категорию и добавлять туда все записи, не требующие отображения на определенных типах страниц.

Структура кода практически аналогична. В нем лишь меняется параметр, который задает исключение поста или категории. В ранее рассмотренных случаях в последней строке был задан параметр исключения записи exclude_post. В новом коде его стоит заменить на exclude_cat.

function exclude_cat($query) { if ($query->is_home) {$query->set("cat","-1, -2, -3");} // id категории return $query; } add_filter("pre_get_posts","exclude_cat");

function exclude_cat ($query ) {

if ($query -> is_home )

{ $query -> set ("cat" , "-1, -2, -3" ) ; } // id категории

return $query ; }

add_filter ("pre_get_posts" , "exclude_cat" ) ;

Как видим, последняя строка потерпела изменений и 3я строка, где изменен параметр, считывающий ID рубрики. ID в данном случае прописывается через черточку, но так же само через запятую.

Принцип построения условия для типов страниц аналогичен рассмотренным вариантам ранее, где я показывал на примере исключения конкретных постов. Стоит изменять 2ю строку, добавляете необходимые параметры для категорий, поиска, архивов или RSS ленты.

Итак, способы без плагина мы рассмотрели. Имеется еще вариант исключения записей о тегам, но сейчас теги уже не очень актуальны на 99% ресурсов. Если вам необходима такая информация, то напишите в комментариях об этом, пожалуйста. Сразу все добавлю.

Плагины

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

Если же стоит исключить специальную рубрику, созданную под статьи, не требующие отображения, то лучше воспользоваться одним из выше предоставленных кодов.

Плагин Simply Exclude

Скачать плагин можно, как через консоль WordPress с помощью поиска, так и с официального сайта WordPress .

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

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

Изначально в настройках плагина все выставлено так, что при активации чек-бокса (рассмотрим чуть ниже) нужные страницы (записи, категории, страницы) будут помечены, как "разрешены для отображения". Таким образом для каждого типа страниц нужно будет проставить все чек-боксы, чтобы все отображалось.

Более логично будет выставить такой вариант, когда активировав чек-бокс (например, для главной страницы) он будет помечать статью или что-то другое, как запрещенное для отображения.

В настройках имеются 3 вкладки, которые призваны настроить параметры для разных типов страниц:

  • Taxonomies (таксономии) - настройка для функционирования плагина в разделах админ-панели WordPress: рубрики и метки;
  • Post types (типы постов) - для типов постов: статьи и страницы;
  • Users - настройки для пользователей.

Сейчас я дам скриншот настроек первой вкладки (таксономии) и объясню параметры, которые стоит выставить.

  • В первом блоке настроек "Active" необходимо выставить чек-бокс "Active", чтобы плагин добавлял нужные чек-боксы для отключения отображения в рубрики или любые другие типы страниц;
  • Во втором блоке ставим все параметры напротив варианта "Exclude". Он означает, что при включенном чек-боксе в редакторе каждого типа страниц, она будет скрыта от отображения и новые статьи будут по умолчанию открыты для показа. Если поставить параметр "Include only", то поставив чек-бокс, записи будут открыты для показа и новые статьи по умолчанию будут скрыты. Если выбран второй вариант "Include only", то после установки плагина все записи будут скрыты и нужно будет выставить вариант "Exclude";
  • В блоке "Show/Hide" ставим параметр "Show", чтобы нужные чек-боксы отображались в каждом типе страниц для возможности отключения или разрешения отображения.

Такие же параметры стоит проставить и на остальных 2х вкладках настройек плагина Simply Exclude.

Например, вот скриншот вкладки "Post types".

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

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

Например, чтобы проставить настройки для записей, можно перейти в редактор необходимой статьи или же через пункт все статьи. И там и там будут нужные чек-боксы. В редакторе в правой колонке будет блок "Simply Exclude", содержащий 4 чек-бокса для скрытия записи и страниц:

  • Archives - категорий и архивов;
  • Feeds - RSS ленты;
  • Front/Home - главной;
  • Searches - поиска.

Проставив нужный чек-бокс, скроете запись из определенного типа страниц.

В пункте админ-панели WordPress "Все записи" напротив каждого материала в новой колонке с названием "Simply Exclude show" также будут эти 4 чек-бокса. То же самое касается и рубрик. Будет добавлена новая колонка со всеми чек-боксами.


Вот и все по этому плагину. Установив его вы можете очень быстро и гибко изменять параметры отображения конкретных записей или целых рубрик без вмешательства в файлы шаблона.

Плагин Exclude Categories

Плагин предназначен только для скрытия целой рубрики из главной страницы и RSS ленты. Так как этот вариант не требует особой гибкости (создал один раз рубрику и туда добавляет статьи), то я рекомендую реализовать исключение целой рубрики кодом (см. пункт 2).

Скачать плагин можете по кнопке ниже.

После его установки перейдите в настройки (Настройки - Exclude Category) и выберите необходимую рубрику для исключения ее с главной страницы.

Исключение всех записей какой-то рубрики - широко распространенный вариант. Но я вижу в нем недостаток, так как на сайт приходится сильно много публиковать статей для привлечения поискового трафика и все они будут по различным вопросам одной темы.

А пихать различные материалы в одну рубрику - не очень хорошо.

Такой вариант также часто используется при активной продаже ссылок на сайте. Владелец создает рубрику и все статьи с продажными ссылками публикует в него. И это также не очень хорошо, так как сейчас веб-мастера требуют размещение ссылки в одном из основных разделов сайта, чтобы она была хотя бы немного кликабельна и имела эффект при продвижении.

Все, ребята, на данной ноте заканчиваю сей подробный мануал, который вам должен пригодиться, если вы пришли по адресу на эту статью. Надеюсь, что все у вас будет отлично.

Желаю прекрасного настроения и великолепного вам дня. До встречи.

С уважением, Константин Хмелев!

    Как можно ограничить вывод определенного блока только на главной странице, если он находится не в home.html ?

    Собственно, сабж. Тема дизайна "DEFAULT". Если убираешь код, представленный ниже из index.html, то, естевственно, сайдбар удаляется со всего сайта. При этом, остается пустое пространство для него. ...

    Добрый день! Подскажите как вывести подкатегории, категории https://diokom.ru/resheniya/ в таком же виде(в прямоугольниках), но без товаров, только на главной странице.Тема suprime/

    Есть решение

    Всем привет. Мучаюсь уже который день с выводом блока только на главной. Перепробовал разные варианты, то отображает только на главной магазина, то отображает на всех страницах кроме магазина. С системой только начал работать, не всё еще понимаю.Есть...

    Много вариантов https://сайт/2426/funktsiya-proverk......

    Здравствуйте уважаемые программисты!Требуется такая задача - Весь товар на главной странице с подгрузкой по кнопке "показать еще" или хотя бы постраничноЕсли использовать встроенный список bestsellers - стандартно на главной 8...

    Есть решение

    Подключил SSL сертификат.В.htaccess прописано так:RewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} RewriteEngine OnRewriteCond %{HTTP_HOST} ^www.сайт.com$ RewriteRule ^(.*)$ https://сайт.com/$1 В...

    Не пойму, где находится файл index.php со всем телом интернет-магазина? Чтобы изменить данные контактов на главной странице. Нашел только один такой файл сразу в корневом каталоге сайта, но в нем указан только заголовок сайта.

    Здравствуйте!Для того, чтобы установить слайдер, в инструкции описаны следующие действия:===cut===Разместить слайдер можно на любом типе страницы (витрина, каталог, информационная страница магазина и т.п.). Для этого пропишите строку (* в...

    Собственно проблема в том что,пытаюсь вывести форму авторизации(Шаблон "Купить просто") на главную страницу, все вроде бы хорошо,но вот только при нажатии на кнопку "вход" ни чего не происходит,.В коде разобрался (спасибо...

    Как можно сделать так чтобы на главной странице выводились товары, из всех, а не только из bestsellers случайным образом?!

    Натянуть макет PSD на главную страницу

    Сайт на Webasyst Shop-Script 306 ✨Нужно сверстать готовый PSD макет только для главной страницы сайта, с учётом адаптивной моб. версии для сайта www.guarana.in.uaМакет вышлю по запросуОплата по факту, можно частями 50/50 после первой части работы....

    Приветствую, вот возникла такая проблема, на главной странице магазина в слайдере не отображаются изображения, по информации разработчика шаблона этот слайдер реализован стандартными средствами приложения ФОТО. Шаблон использую "Купить...

    Добрый день, коллеги!Как сделать, чтобы все отзывы на товарах, отображались на главной странице?Сейчас это выглядит так: - только два отзыва из сотни.

    Разширить стандартную строку поиска,поставить фильтр товаров на главной странице или сделать отображение категории товаров с фильтром

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

    Здравствуйте! На главной странице Тема дизайна «Гипермаркет» 1.2.0 (hypermarket) не отображаются остатки на складе. А отображаются остатки на складе только если непосредственно войти в товар!!! Как это можно исправить?

    +1

    Вывести фильтр товаров на главную страницу

    Сайт мотошины.рус,в верхней части главной страницы идет полоса с главными категориями категориями.Я хочу что бы фильтр был снизу-параллельно этой полосе с категориями.По ширине он не должен выходить за края баннера над которым он будет...

    Я хочу сделать магазин, в котором очень мало позиций. Поэтому мне достаточно главной страницы, чтобы вывести все категории товаров на нее. Вот только я не могу понять, как это сделать. Буду благодарен за подсказку.

    Нужно что бы карта пути и заголовок не выводился на главной, но в то же время был доступен на других страницах. Спасибо

    Добрый день, столкнулся с необходимостью написать css правила для главно блока в шапке сайта #header скриншот, с условием что правила будут применяться только на главной странице. (Тема на основе стандртной «Sidebar») Во многих cms...

    Есть решение

    Здравствуйте.В общем вопрос в заголовке. Как скрыть блок только на главной странице сайта.

    {if isset($frontend_homepage)}Ваш код{/if}Это сработает не для всех приложений: только для магазина и "Хаба", насколько я знаю. Например, в "Сайте" нет переменной frontend_homepage. Более универсальные варианты будут такие (заодно с учётом возможных UTM-меток в URL страниц — при проверке адреса страницы отбрасываем GET-параметры)://Только на главной {if $wa->currentUrl(false, true) == $wa_url}код на главной{/if} //Везде, кроме главной {if $wa->currentUrl(false, true)...

    Rat

    Есть решение

    Приветствую! Блог разделен на 2 части - "новости" и "статьи". Подскажите, как на главной странице выводить последние посты (latest posts) только из раздела "новости"? Используется стандартный...

    В самом блоке есть код {$latest_posts = $wa->blog->posts()}если указать внутри $wa->blog->posts(1) цифру - id блога то будут выбираться сообщения только из него.

    Как сделать так чтобы товары были на главной странице магазина? У меня там пишется "