Вывод текста в блоге только на главной
Стандартный формат блога построен таким образом, что его сообщения (посты) выводятся друг за другом, причем первыми отображаются самые новые, а старые постепенно уходят в архив. Так было в самого начала, но с развитием блоггинга мы могли видеть множество различных вариантов шаблонов wordpress, которые, например, отображают информацию в газетном виде, а сверху демонстрируются так называемые featured (избранные) статьи. Или, например, фото блоги, что практически не содержат текстовой информации, лишь фото, ну и т.п.. Люди понемногу стали отходить от стандартов. И это здорово.
Одним из таких моментов, что может слегка разнообразить ваш блог, есть вывод определенного текста на главной странице блога. То есть читатель заходит на проект site.ru и видит небольшое текстовое описание, о чем собственно сайт, что здесь можно найти и т.п. Иногда такие описания (вступления) помещаются в сайдбар, иногда в шапку блога. Можно поступить несколько иным образом, скомбинировав два варианта:
- на главной отображается текстовый блок с вступлением;
- на всех остальных страницах описание блога выводится в сайдбаре, но в уменьшенном (более компактном виде).
Пример можно глянуть в блоге про чай. Я там по дизайну еще не все делал, но как раз сегодня разбирался с выводом текста на главную. Получается, что многие посты на WordPress Inside основаны на личном опыте:)
Кстати, если вам нужно подправить лишь оформление главной, то достаточно будет использовать WordPress функцию body_class — она добавит в body соответствующие классы, а дальше вы примените CSS стили.
Условные операторы wordpress
Для решения нашей задачи мы будем использовать условные операторы 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() и никаких проблем не наблюдал. На главной при этом выводятся «последние посты». Получаем что-то вроде:
<?php if (is_front_page() ) { echo('This is a homepage'); // действие для главной страницы } else { echo('This is not a homepage'); // действие для не главной страницы } ?> |
В блогах бывают ситуации, когда на главной странице не помещаются все посты и внизу появляется разбиение на страницы. Что важно(!) система wordpress при переходе по ним не меняет состояние страницы с «главной» на другое — получается главная страница, которая просто не помещается за один раз. Поэтому мы будем использовать еще один важный условный оператор:
is_paged() — реагирует (TRUE или FALSE) на ситуацию, когда все посты архива (для главной, категории, тегов) не помещаются на одной странице и разбиваются на несколько. Причем следует заметить, что это не касается разбиения отдельного поста на страницы с помощью <!--nextpage-->.
Итого — выводим текст только на главной
Чтобы выводить текст на главной и прятать его на любых других страницах я использую код, который добавляю в файл шаблона index.php до выборки последних постов блога have_posts():
<?php if ((is_front_page()) and (!is_paged())) { ?> <div class="pagetitle"><h1>Мой блог</h1></div> <div class="entry"><p>Добро пожаловать в мой новый блог</p></div> <?php } ?> |
Теперь шаг номер 2 – будем выводить небольшое краткое описание для блога в сайдбаре – для этого открываем файл sidebar.php и добавляем в нужное нам место строки:
<?php if ((!is_page('2')) and !((is_front_page()) and (!is_paged()))) { ?> <div class="about" style="margin-bottom: 5px;"> <div class="h3title">О проекте</div> <p>Короткое описание</p> </div> <?php } ?> |
Здесь мы видим еще один условный оператор, который может кому-то пригодиться.
is_page (‘ID’) – проверяет отображение страницы с номером, указанным в ID. В моем примере я скрываю краткое описание блога в сайдбаре на странице с id 2, потому что там у меня приготовлена целая статья «о проекте». То есть нет смысла выводить краткое описание, когда все рассказывается непосредственно в блоке контента.
комментария 122 к статье “Вывод текста в блоге только на главной”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Media Cleaner — для удаления неиспользуемых изображений WordPress
- VpsUP.ru — рейтинг VPS/VDS хостеров и помощь с выбором сервера
- OptiPic – оптимизация изображений для сайтов на WordPress и не только
- Как убрать Google Maps API на сайте с WordPress?
- Finteza Analytics — сервис для комплексного анализа трафика + бесплатный плагин
- WPShop — 4 функциональных премиум темы на любой вкус + плагин Clearfy Pro
- Duplicator — лучший плагин переноса WordPress, алгоритм клонирования сайта
- WooCommerce (30)
- Безопасность (10)
- Видео (6)
- Виджеты (24)
- Возможности (124)
- Вопрос-ответ (2)
- Начинающим (44)
- Новости (42)
- Оптимизация (20)
- Плагины (216)
- Сервисы (73)
- Хаки и секреты (79)
- Шаблоны (42)
- Записи и посты wordpress, оформление записи
(5,89 из 7, голосов - 46)
- Умный копирайт в footer.php для wordpress
(5,79 из 7, голосов - 29)
- Рубрики и категории wordpress, функция wp_list_categories
(6,00 из 7, голосов - 19)
- Плагин TinyMCE Advanced – wordpress текстовый редактор
(6,24 из 7, голосов - 17)
- Ссылка читать далее в WordPress (тег read more)
(5,00 из 7, голосов - 17)
- 17 полезных приемов и хаков для WordPress
(5,57 из 7, голосов - 14)
- Вывод текста в блоге только на главной
(6,82 из 7, голосов - 11)

- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- WordpressPlugins.ru
- Majordomo - выгодные цены на виртуальный хостинг
- Игра в казино Вулкан — сплошное удовольствие (обзор + турниры)
- Работаем с удаленным сотрудником
- Заголовки, как способ привлечения внимания
- Играем в Автоматы 777 — разновидности слотов и приятные бонусы
- Замена раковины в ванной комнате или на кухне
- Как быстро найти работу: 9 советов соискателю
- Продвижение в Инстаграм: как подготовить свой аккаунт к массфолловингу
В блоке Хедер в header.php ввожу код
редактор WordPress пишет, что ваши сохранения были отменены из-за ошибки с троке.
Antey, к сожалению, код в комментариях вставить не получится. Чтобы соблюдались все три условия нужно использовать что-то вроде:
if ((is_front_page()) and (!is_paged()) and (wp_is_mobile())) {
...
}
Ошибка в строке может возникнуть из-за не открытой/закрытой скобки или обрамления php кода: <?php … ?> — внимательно проверьте код еще раз.