Вывод постов в две колонки в WordPress
Недавно работал над парочкой проектов и мне поставили задачу чтобы посты в новостном блоге выводились в две колонки. Новостной блог был на wordpress и я начал думать как это сделать. Соответственно погуглил немного и решение нашлось само сабой. Оказывается это не так и сложно. Этим способом можно выводить посты и в три и в четыре колонки. Было бы желание и место, для вывода. Последнее время очень много порталов и блогов берут за основу технологию вывода постов в две колонки. Это удобно, читабельно и места больше становится. Сегодня мы с Вами реализуем эту идею.
Изначально в каждом блоге выводятся посты в таком порядке:
Мы реализуем следующую последовательность вывода постов:
Итак, для начала немного истории. Стандартный вывод постов задается с помощью цикла Loop, который имеет следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!--Начало цикла Loop --> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2> <?php the_time('F j, Y') ?> <!-- by <?php the_author() ?> --> <div> <?php the_content('Далее »'); ?> </div> <p><?php the_category(', ') ?> | <?php edit_post_link('Редактировать', '', ' | '); ?> <?php comments_popup_link('Нет комментариев »', 'Один комментарий »', 'Комментариев: %'); ?></p> </div> <?php endwhile; else : ?> <h2>Не найдено</h2> <p>Здесь ничего нет, попробуйте поискать:</p> <?php include (TEMPLATEPATH . "/searchform.php"); ?> <?php endif; ?> |
Мы будем модифицировать этот цикл под наши нужды. Что мы будем делать?
- Перед комментариями <!–Начало цикла Loop –> ставим следующий код:
1<?php $col = 1; ?>
- После начала цикла, на следующей строке вставляем
1<?php if ($col == 1) echo "<div class=\"row\">"; ?>
- Вместо
1<div id="post-<?php the_ID(); ?>">
пишем следующее
1<div class="post col<?php echo $col;?>" id="post-<?php the_ID(); ?>">. Для чего меняем строку? Все просто. Мы добавляем возможные классы для будущих колонок. В нашем случае это col1 и col2, которые будут формироваться с помощью кода col<?php echo $col;?>.
- Перед окончанием цикла, а это строка
1<?php endwhile; else: ?>
мы дописываем php код, который будет
1<?php if ($col == 1) echo "</div>"; (($col==1) ? $col=2 : $col=1); ?> - Ну и конечно незабываем прописать в нашем файле стилей следующие правила для наших двух колонок:
1
2
3.row { clear: both; }
.col1 { width: 250px; float: left; }
.col2 { width: 250px; float: right; }
Вот в принципе и все. Вам осталось только разобраться и прикрутить все это к Вашему дизайну. Теперь наш цикл Loop будет выглядеть так(у каждого по своему, зависит от общего дизайна):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $col = 1; ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php if ($col == 1) echo "<div class=\"row\">"; ?> <div id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2> <?php the_time('F j, Y') ?> <!-- by <?php the_author() ?> --> <div> <?php the_content('Далее »'); ?> </div> <p><?php the_category(', ') ?> | <?php edit_post_link('Редактировать', '', ' | '); ?> <?php comments_popup_link('Нет комментариев »', 'Один комментарий »', 'Комментариев: %'); ?></p> </div> <?php if ($col == 1) echo "</div>"; (($col==1) ? $col=2 : $col=1); ?> <?php endwhile; else : ?> <h2>Не найдено</h2> <p>Здесь ничего нет, попробуйте поискать:</p> <?php include (TEMPLATEPATH . "/searchform.php"); ?> <?php endif; ?> |
У кого возникли какие-либо вопросы не стесняйтесь спрашивайте. Я пока еще не очень силен в WordPress и программировании на php, но мне будет очень интересно пообсуждать с Вами данную тему и находить новые решения. Удачи!


Если Вам понравилась статья и Вы хотите следить за обновлениями в блоге, то подписывайтесь через RSS, становитесь моим фолоувером в TWITTER. Возможно Вы желаете получать обновления себе на мыло? Подписуйтесь на RSS2E-mail. Так же, возможно, Вы хотите разместить постовые или любые другие виды рекламы. В таком случае пишите мне на ICQ:451240340
Источник: Sonika
Недавно нашел рецепт приготовления суши. Давно хотел сделать что-то своими руками. И вот, получилось.
















451-240-340
lyash89
mrmasterix@gmail.com
id811932









Прямо в точку, классная статья. Обязательно попробую у себя на блоге. Интересно как это будет выглядеть, вдруг понравиться. Еще раз спасибо))
Большое пожалуйста… Я вот только не пойму, вроде статья хорошая, и контент(кроме кода) уникальный, а комментов только 1 и не ретвитят никто(((
Спасибо автору за интересную статью, возьмем на заметку.
Да не за что =) Вот бы почаще идеи для статей появлялись…я бы жил на блоге =)
спасибо огромную за статью, случайно наткнулся, а вылилось всё в то, что на новом проекте переделал дизайн главной страницы и теперь анонсы выводятся в две колонки, единственно что изменил, так это параметры css, шаблон у меня растягивающийся, так что поставил вместо 250px 49% на каждый…
p.s. поле для комментария не имеет прокрутки..этот текст написан вслепую..
p.s. странно, видимо словил глюк, сейчас полосы прокрутки нормально появляются…
[...] This post was mentioned on Twitter by Anton Eremin, Alexander. Alexander said: RT @mrMasterix Вывод постов в две колонки в WordPress http://bit.ly/beeR2I [...]
>p.s. странно, видимо словил глюк, сейчас полосы прокрутки нормально появляются…
То у Вас наверно кеш не обносвился. Я еще в 10 утра поставил прокрутку =)
тогда всё понятно…я с утра на сайт к Вам зашел,переделал дизайн на своём сайте (так сказать по инструкции), а потом решил спасибо сказать =)
Почаще бы так…Спасибо говорили =)
Дякую, якраз пинаю ВП в схожому напрямі, вивчити б його АПІ ))
А как сделать так, чтобы выводило три поста вместо двух???
Почти аналогично. Дописать несколько функций. Я вскоре напишу об этом. Подпишитесь на РСС, чтобы не пропустить.
А как этот пример применить только для одной определенной категории, Ответьте пож-та
Подскажите, пожалуйста, как реализовать вывод постов в 4 колонки, очень необходимо!!! Заранее спасибо.
Сейчас нет времени разбирать код, но как только оно найдется, займусь.
ЗЫ: Думаю там дело в ширине выводимого блока поста. Попробуйте сделать ширину так, чтобы сумарная ширина влазила в ваше место под вывод постов.
обясните мне тупому куда вставить 5 пункт
в файл стилей. К примеру, style.css
Срасибо ето я понял а куда именно
у меня тема Twenty Eleven
Ну найди файл стилей и в любое место вставь.
У меня вот отличная тема Snow Summit, но цикл находится в файле loops.php, редактирую его, редактирую стили. И ничего… Посты как заколдованные прилипли…
а вы уверены, что именно этот файл отвечает за размещение постов? Возможно, сама функция главная может быть в файле function.php. Но это так, догадки, так как я не видел сам файл и код.
по моему это тоже функция
Здравствуйте!
Спасибо за статью получилось! Но есть еще вопросик… Как сделать если 1-й пост на всю, 2, 3 пополам, 4-й на всю т.д. ???
Подскажите пожалуйста!
Спасибо!