Как выводить в вордпресс посты на главной в виде сетки?
На главной нужно вывести циклом 4 поста, сначала взять последний пост, потом предпоследний, потом 3 и 4 с конца... .... это для того чтобы им разное оформление задать (выводить разные миниатюры и т.д.) Подскажите цикл? не хочется делать три отдельных запроса в базу...
Это не вопрос, а задание для фриланса, читайте правила Тостера, с которыми не далее как сегодня соглашались.
5.12. Задачи и задания. В отличие от вопроса, задача и задание представляют собой частную проблемную ситуацию с явно заданной целью, которую необходимо достичь. Пользу от достижения этой цели получает, как правило, лишь её автор. И даже автору решение задачи или задания будет полезно лишь кратковременно (до тех пор, пока он не использует полученное решение). Все остальные пользователи, которые будут просматривать вопрос, сведенный к решению частной задачи, в надежде найти ответ на свой, лишь понапрасну затратят время. Поэтому, чтобы такие вопросы-задания не мешали другим пользователям искать ответы на вопросы, нам приходится их удалять. А для поиска помощи в решении задач и выполнения заданий мы рекомендуем использовать специализированные сервисы, например «Фрилансим».
aliasst, начните делать и задайте конкретный вопрос. И простота тут не важна, важно значимость ответа для коммюнити. Ответ на ваш вопрос нужен только вам.
aliasst, что вы уже сделали сами на данный момент? есть какой-то код, от которого можно отталкиваться? На тостере вы уже искали? Помнится, я 2-3 раза на подобные вопросы тут уже отвечал.
вот так получилось, выводит вроде все ..как нужно..но кажется что-то не хватает в коде
<?php $lastposts = get_posts('numberposts=4'); ?>
....
<?php setup_postdata($post = $lastposts[0]); ?>
<h2>Заголовок последнего поста</h2>
пост
.....
<?php setup_postdata($post = $lastposts[1]); ?>
<h2>Заголовок Предпоследнего поста</h2>
пост
.....
<?php setup_postdata($post = $lastposts[2]); ?>
<h2>Заголовок 3-го поста с конца</h2>
пост
.....
<?php setup_postdata($post = $lastposts[3]); ?>
<h2>Заголовок 4-го поста с конца</h2>
пост
aliasst, Конкретно в этом коде не хватает wp_reset_postdata() в конце. У вас пост, который хранится в $lastposts[3] останется в глобальной переменной $post и может дальше по ходу страницы вызвать неожиданные побочные эффекты.
В целом, если у вас там гарантированно 4 последних поста надо выводить (и они не из главного цикла), то такой вариант подойдет. Единственное, я бы не делал setup_postdata вообще. Функция get_posts() возвращает массив объектов WP_Post, вы можете непосредственно получать доступ к свойствам этих объектов, например echo $lastposts[1]->post_title; вместо the_title();. И я бы сам вывод сделал через foreach, а вот как конкретно ручками пересортировать массив $lastposts в нужном порядке - вот тут можно подумать. В общем, я бы старался максимально унифицировать сам код, а сортировку делать в админке, по возможности.