WordPress цикл (loop) – выводим сообщения блога
Возникла задача для одного из блогов запретить вывод на главную страницу постов из определенной категории. Самое время залезть и немного покопаться в кодексе дабы правильно изменить наш шаблон. Использовать при этом какие-то плагины wordpress, думаю, смысла нет, ведь все решается гораздо проще. Но для начала немного теории.
Итак, wordpress цикл (или loop) используется для отображения каждого из постов вашего блога. С помощью цикла система вордпресс обрабатывает каждый пост и отображает его на текущей страницы, исходя из тех или иных заданных критериев. Любой код HTML или PHP, который указан в цикле, будет применен для всех отображаемых постов. При этом для соответствующих функций в кодексе четко указывается, что мол она может быть использована только в цикле wordpress. Так, например, с помощью цикла на главной странице блога для каждой записи задается оформление (обработка) ее заголовка, категорий и т.п. Таким образом, вы указываете форматирование единожды, а оно применяется ко всем статьям.
Если вы откроете главный файл шаблона index.php, то сможете найти в коде строки, отвечающие за цикл wordpress. Начинается он здесь:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
А заканчивается чаще всего таким кодом:
<?php endwhile; else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> <?php endif; ?>
В принципе, ничего сложного быть не должно. Дабы закрепить материал предлагаю взглянуть на парочку примеров.
Допустим, что у нас есть задача сделать отдельное оформление для категории постов под номером 3 (цифру ищите в админке блога разделе категорий при наведении на ее заголовок). Для вывода используем все тот же цикл Loop, а для проверки принадлежности к той или иной категории функцию in_category(). Итого получаем:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php if ( in_category('3') ) { ?> <div class="post-cat-three"> <?php } else { ?> <div class="post"> <?php } ?> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> … <?php endwhile; else: ?> <p>Sorry, no posts matched your criteria.</p> <?php endif; ?>
Здесь в центре кода есть условие – если пост принадлежит категории под номером 3, то для его оформления применится стиль post-cat-three, в противном случае обычный. Учитывая тот вариант, что код проверки находится в цикле wordpress, мы производим автоматически проверку для всех постов блога.
Исключаем посты из цикла для определенной категории
Собственно теперь рассмотрим пример, с которого все и началось. С помощью функции query_posts мы можем изменить параметры цикла wordpress для вывода постов блога на главной странице. Например, мы хотим исключить из вывода категории 3 и 8, тогда используем код:
<?php query_posts($query_string . '&cat=-3,-8'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="post"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <div class="entry"><?php the_content(); ?></div> <p class="postmetadata">Posted in <?php the_category(', '); ?></p> </div> <?php endwhile; else: ?> <p>Sorry, no posts matched your criteria.</p> <?php endif; ?>
Внимание! При этом вы должны убедиться, что используете отдельный файл шаблона для вывода архивов категорий и др., то есть поищите у себя archive.php. В противном случае исключение категорий 3 и 8 будет применено и к архивам, чего мы делать не планировали.
В кодексе для этого есть небольшое решение с помощью функции is_home():
… <?php if ( is_home() ) { query_posts($query_string . '&cat=3,-8'); } ?> …
Пока что на этом все, другие «истории» из кодекс рассмотрю в следующих статьях.
P.S. Постовой. Вы всегда можете бесплатные объявления на нашей Доске DoRus.ru.
Все про отдыху в Крыму – статьи, блоги, фотогалерея, форум, каталог жилья на zagar.net.ua.
Комментариев - 31 к статье “WordPress цикл (loop) – выводим сообщения блога”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Записи и посты wordpress, оформление записи
- 17 полезных приемов и хаков для WordPress
- Обновление WordPress подробно для начинающих
- Ссылка читать далее в wordpress – тег more
- Как добавить дополнительные кнопки в редактор WordPress
- Что нового в WordPress 3.1
- Похожие статьи в wordpress без плагинов с использованием категорий блога
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- Самый популярный сервис платежей – Яндекс.Деньги
- Моделирование. Этапы моделирования.
- Шопинг в Европе и требуемые документы
- Последняя версия Google Chrome вышла с ошибкой
- Порядка 70 процентов не доводят покупки в сети Интернет до конца
- Рекламу в социальных сетях автоматизирует сервис AdCenter
- Тестирование новой разработки Интернет-агентства Registratura.ru

Оцените статью: 
Категории:
Теги:
Дарья, судя по шаблону тег more работает для записей (постов), а не страниц в вашем блоге. Я бы создал рубрику «статьи» как это есть с новостями и добавлял бы заметки туда. Вполне вероятно, что more сразу заработает. По теме, кстати, еще была одна статья – ссылка читать далее в wordpress – тег more.