Вывод текста в блоге только на главной
Стандартный формат блога построен таким образом, что его сообщения (посты) выводятся друг за другом, причем первыми отображаются самые новые, а старые постепенно уходят в архив. Так было в самого начала, но с развитием блоггинга мы могли видеть множество различных вариантов шаблонов 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, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Записи и посты wordpress, оформление записи (5,91 из 7, голосов - 47)
- Проблема с адаптивными изображениями в Gutenberg редакторе WordPress (3,87 из 7, голосов - 45)
- Умный копирайт в footer.php для wordpress (5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений (5,19 из 7, голосов - 31)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress (4,42 из 7, голосов - 31)
- Плагин TinyMCE Advanced – wordpress текстовый редактор (6,35 из 7, голосов - 20)
- Рубрики и категории wordpress, функция wp_list_categories (6,05 из 7, голосов - 20)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
У меня через index.php даже словечка на главной вывести не получается. Помогите с этим, пожалуйста в комментариях или по почте. Буду очень признателен за второй вариант.
454552203 в аську стукани
Андрей, поищите файл шаблона home.php — иногда он отвечает за главную.
Да, спасибо. Именно в нем все получилось сделать. Кстати, встречный вопрос. Для удобства читателей я текст на главной (оптимизированный, конечно) поместил под спойлер. Как поисковые системы относятся к таким вещам, не знаете?
А если обратная ситуация. Мне нужно сделать так, чтобы на главной публиковались только те посты, которые мне нужны. То есть можно ли в админке сделать галочку — «Размещать на главной», которая по умолчанию активна. Если галочку снимаем — пост на главной не отображается. Было бы удобно
Dimax, я бы для этого 1) создал шаблон home.php, куда бы скопировал все содержимое index.php 2) дальше с новым файлом шаблона провернул бы трюк с отображением последних сообщений выбранной категории — разумеется, все нужные статьи я бы добавил в какую-то отдельную категорию.
Все хорошо, только если используете плагин Wp Pagenavi, то текст который хотелось бы разместить с помощью этих функций только на главной, появится и на всех следующих страницах. И не помогает перенос кода с index.php в home.php
Александр, в конце поста есть код, который нужно использовать в index.php или home.php…
Здавствуйте очень помог Ваш пост.
С главной все понятно с категорией тоже.
Вот возник вопрос вследствии того что на моем сайте попросили разаместить ссылку на «второй странице определенной категории»
Сделал вот так:
Получилось что ссылка вывелась на всех страницах пагинации категории, кроме первой страницы.
Подскажите как ее вывести именно на 2-ой странице категории.
Спасибо огромное!
P.S такой же вопрос интересует и при выводе текста на страницах пагинации «Главной»
MIRREXX, к сожалению, не знаю как это можно сделать «красиво» с помощью определенной функции вордпресс — возможно она где-то и существует, но всех их я не помню. Первым делом я бы поискал ответ на этот вопрос в хаках из гугла — возможно, кто-то уже придумал решение.
Здравствуйте, подскажите пожалуйста как сделать чтобы вывод был только в определённой категории, например здесь /category/smotret-boeviki но не показывалось на других страницах этой же категории /category/smotret-boeviki/page/2 , /category/smotret-boeviki/page/3 и т. д. Как так сделать?
Ser, нужно использовать параметр is_paged который определяет находимся ли мы на подстраницах категории — смотрите примеры кода из поста и сделайте по аналогии.
Спасибо за информитивную статью. Какраз искал подобные решения. Буду дерзать!
А какой номер у главной страницы?
Alex, главная страница это файл шаблона index.php или home.php, номера там нет разве что если только в настройках не установлено использовать в качестве главной какую-то запись блога.
Спасибо, is_paged() помогло :)
Здравствуйте). Хочу кое-что спросить, — возможно немного не по теме. Щтука работает, — то что нужно, спасибо большое). Я правда текст вывел (точнее выведу, — пока экспериментирую) в футере, так как он большого объема, и не лепится в начале.
Текст на главной странице с ключами, по которой продвигается главная, помогает ей подняться (как пишут), если все правильно сделать, что в принципе логично). Хочу просто как-то разобраться, — будет ли разница от нахождения текста на главной — в начале (перед постами) или в том же футере? Как вы думаете, если ли разница для поисковиков, где находится текст? Вот я смотрю у вас в начале, а на киносайтах многих, подобный текст находится в конце. Думается так: размещает каждый где ему удобно, а поисковики его все равно берут на вооружение, но, не исключено, что от места зависть мощь «орудия». В общем интересует ваше мнение по этому поводу, если это возможно). И вообще, насколько действенным является такой текст на данный момент в плане продвижения главной.
Макс, лучше размещение в самом начале. Но если сайт «для реальных людей» или является кино-сайтом, интернет магазином, то сверху пользователи хотели бы видеть товары/полезную информацию. Поэтому и размещается внизу, это лучше чем без текста вообще.
приветствую!
вопрос прямо-противоположный. Где ошибаюсь?! имеем (пример) две странички на сайте Главная и Контакты.
не могу понять почему оба поста на Главной и Контакты отображаются на Главной.
Dima_Bedny, если честно не очень понял о чем речь. Можно: 1) посмотреть раздел «параметры» — «чтение» не установлена в качестве главной другая страница; 2) посмотреть шаблон home.php или index.php что там задано для отображения.
Спасибо друзья! самый отзывчивый ресурс о вордпресс!
Ну очень помогла функция, спасибо огромное)
Подскажите, пожалуйста, как вывести на главную сначала текст (страницу), а ниже последние 6 записей?
Анна, так в статье как раз об этом и рассказывается, смотрите примеры кода в конце текста. Лучше выводить обычный текст, прописанный в шаблоне, а не конкретную страницу.
А как вывести только изображения на главной? Или изображения с названиями
Alisa, не совсем понял суть задачи «вывести изображения на главной» — что это за изображения вообще? Если фото и галереи какой-то, то нужно создать файл шаблона home.php и вместо постов там добавить код вызова галереи. Если вам нужно вывести картинки перед постами, то делаете также как и с текстом только предварительно загрузите фото в библиотеку медиафайлов.
Большое Спасибо ! Очень необходимо ! Завтра Испытаю ! Спасибо !
Помогите пожалуйста с вопросом, возможно не совсем по теме. Только начинаю разбираться в WP и вот одна проблема. Новые посты выводятся внизу, а старые на верху. Как изменить порядок, что бы старые посты как раз и уходили в архив?
Алекс, по умолчанию все работает как раз наоборот — сверху идут новые посты. Поэтому проблема такого поведения блога лишь в каком-то установленном плагине либо в шаблоне. Нужно искать причину.
Подскажите пожалуйста, как вывести на главной последнюю запись целиком, а ниже несколько предыдущих записей анонсами. В PHP не силен, но примерно представляю, если запись первая, то the_content() иначе the_excerpt()