Как разместить текст в блоге только на главной

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

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

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

Условные операторы WordPress

Что же, для решения поставленной задачи воспользуемся условными операторами Wordpress. И тут возникает маленькая проблемка, которая, впрочем, не влияет на конечный результат. Дело в том, что существует сразу два оператора для определения главной страницы блога - is_home() и is_front_page(). Прочтя их описание в кодексе, тяжело понять их отличия, поэтому, на практике необходимо найти работающий вариант.

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

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

<?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 } ?>

Затем, следует вывести небольшой анонс для блога в сайдбаре. Для этого необходимо открыть файл sidebar.php и добавить в соответствующее место следующие строки:

<?php if ((!is_page('2')) and !((is_front_page()) and (!is_paged()))) { ?>     <div class="about">         <div class="h3title">О проекте</div> <p>Короткое описание</p>     </div>  <?php } ?>

Здесь наблюдается еще один условный оператор – is_page (‘ID’), который, в принципе, может кому-то пригодиться. Он отвечает за отображение страницы с номером, указанным в ID. В вышепоказанном примере, анонс блога скрывается на странице с ID 2, так как там приготовлена вся статья «о проекте». Проще говоря, нет никакой необходимости выводить анонс, когда вся информация показана непосредственно в блоке контента!

Пожаловаться Подписаться
0 ответов
авторизуйтесь чтобы ответить