Циклы – не самая лёгкая для понимания тема в изучении WordPress, поэтому возможно вам будет легче изучить её при помощи моего видеоурока.
Циклы в WordPress нужны для того, чтобы выводить контент блога (записи и страницы). В зависимости от страницы, на которой вы находитесь, цикл будет вставлять соответствующее содержимое. То есть на на странице с рубриками будет выводиться содержимое рубрик, на странице с постом — сам пост, а на главной то, что указано в настройках Параметры > Чтение и так далее.
Начало цикла
<?php while (have_posts()) : the_post(); ?>
Конец цикла
<?php endwhile; ?>
Как видите,это обычный PHP-цикл while, а это значит, что его содержимое будет повторяться до тех пор, пока выполняется условие.
В переводе с английского have_posts() означает «есть посты(записи)». Короче говоря до тех пор, пока они есть, цикл будет прокручиваться снова. Чаще всего встречается запись цикла с условием.
Начало цикла
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Конец цикла
<?php endwhile; else: ?> <p>Записей не найдено.</p> <?php endif; ?>
Я уже говорил, что всё, что находится внутри цикла, будь это php-код или HTML, или и то и другое, будет повторяться для каждой записи.
Также существуют специальные теги для вывода информации о посте:
the_title(); // заголовок the_content(); // контент the_permalink(); // ссылка the_excerpt(); // цитата the_category(', '); // рубрики, в скобках разделитель, например запятая the_author(); // автор the_time('j M Y'); // время и(или) дата публикации, в скобках указывается формат, например 'j M Y G:i' - 'день месяц год часы:минуты'
А теперь поинтереснее, теги к записи:
the_tags($before, $separator, $after) // теги(метки)
$before — текст перед тегами, по умолчанию Tags:, $after — текст «после», по умолчанию не выводится ничего, $separator — разделитель тегов, по умолчанию (,) запятая.
Пример:
<?php the_tags('Метки:', ' • ', '<br />'); ?>
Также можно вывести метки в виде списка:
<?php the_tags('<ul><li>','</li><li>','</li></ul>'); ?>
Миниатюра (изображение) к записи.
the_post_thumbnail();
Только перед тем, как использовать эту функцию, надо включить поддержку миниатюр в вашей WordPress-теме, добавив этот код в файл functions.php:
if ( function_exists('add_theme_support')){ add_theme_support('post-thumbnails'); }
В том случае, если вы захотите создать свой собственный цикл, то есть например выводить записи из какой-то определённой рубрики, либо вывести определённое количество записей, не зависящих от настроек в админке, либо отсортировать их случайным образом, (и т.д.) то вам следует воспользоваться query_posts() либо WP_Query()
Здравствуйте Михаил! Очень много у Вас полезностей. Спасибо Вам за труд!
У меня к Вам есть вопрос по теме данного поста. Если подскажите буду очень благодарен. В общем суть моей проблемы - в результате работы стандартного цикла WP на главной странице блога выводятся анонсы не только записей но и страниц, хотя страницы мне там не нужны. Да и как я понял они и не должны туда были бы выводится без моего разрешения. Как мне запретить страницам (об авторе и.т.п) появлятся в ленте главной стр?
Добрый вечер) спасибо)
страницы сами по себе через стандартный цикл не выведутся, там видимо в теме где-то есть код, который их включает в цикл
Добрый день.
А как вывести все статьи с конкретными тремя (в моем случае) метками:
у меня три выпадающих списка select в форме
мне нужно в файле vybor.php прописать чтоб вывелись все статьи с выбранными в этих выпадающих списках метками
вот форма