Вывод постов в две колонки в Wordpress

Категории:HTML-верстка, 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; ?>

Мы будем модифицировать этот цикл под наши нужды. Что мы будем делать?

  1. Перед комментариями <!–Начало цикла Loop –> ставим следующий код: 
    1
    <?php $col = 1; ?>
  2. После начала цикла, на следующей строке вставляем 
    1
    <?php if ($col == 1) echo "<div class=\"row\">"; ?>
  3. Вместо
    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;?>.

  4. Перед окончанием цикла, а это строка 
    1
    <?php endwhile; else: ?>

    мы дописываем php код, который будет 

    1
    <?php if ($col == 1) echo "</div>"; (($col==1) ? $col=2 : $col=1); ?>
  5. Ну и конечно незабываем прописать в нашем файле стилей следующие правила для наших двух колонок: 
    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

Недавно нашел рецепт приготовления суши. Давно хотел сделать что-то своими руками. И вот, получилось.



Похожие статьи:


Комментарии:

24 комментариев к теме: “Вывод постов в две колонки в Wordpress”


  1. Прямо в точку, классная статья. Обязательно попробую у себя на блоге. Интересно как это будет выглядеть, вдруг понравиться. Еще раз спасибо))


  2. Большое пожалуйста… Я вот только не пойму, вроде статья хорошая, и контент(кроме кода) уникальный, а комментов только 1 и не ретвитят никто(((


  3. Спасибо автору за интересную статью, возьмем на заметку.


  4. Да не за что =) Вот бы почаще идеи для статей появлялись…я бы жил на блоге =)


  5. спасибо огромную за статью, случайно наткнулся, а вылилось всё в то, что на новом проекте переделал дизайн главной страницы и теперь анонсы выводятся в две колонки, единственно что изменил, так это параметры css, шаблон у меня растягивающийся, так что поставил вместо 250px 49% на каждый…
    p.s. поле для комментария не имеет прокрутки..этот текст написан вслепую..


  6. p.s. странно, видимо словил глюк, сейчас полосы прокрутки нормально появляются…


  7. [...] This post was mentioned on Twitter by Anton Eremin, Alexander. Alexander said: RT @mrMasterix Вывод постов в две колонки в Wordpress http://bit.ly/beeR2I [...]


  8. >p.s. странно, видимо словил глюк, сейчас полосы прокрутки нормально появляются…

    То у Вас наверно кеш не обносвился. Я еще в 10 утра поставил прокрутку =)


  9. тогда всё понятно…я с утра на сайт к Вам зашел,переделал дизайн на своём сайте (так сказать по инструкции), а потом решил спасибо сказать =)


  10. Почаще бы так…Спасибо говорили =)


  11. Дякую, якраз пинаю ВП в схожому напрямі, вивчити б його АПІ ))


  12. А как сделать так, чтобы выводило три поста вместо двух???


  13. Почти аналогично. Дописать несколько функций. Я вскоре напишу об этом. Подпишитесь на РСС, чтобы не пропустить.


  14. А как этот пример применить только для одной определенной категории, Ответьте пож-та


  15. Подскажите, пожалуйста, как реализовать вывод постов в 4 колонки, очень необходимо!!! Заранее спасибо.


  16. Сейчас нет времени разбирать код, но как только оно найдется, займусь.
    ЗЫ: Думаю там дело в ширине выводимого блока поста. Попробуйте сделать ширину так, чтобы сумарная ширина влазила в ваше место под вывод постов.


  17. обясните мне тупому куда вставить 5 пункт


  18. в файл стилей. К примеру, style.css


  19. Срасибо ето я понял а куда именно
    у меня тема Twenty Eleven


  20. Ну найди файл стилей и в любое место вставь.


  21. У меня вот отличная тема Snow Summit, но цикл находится в файле loops.php, редактирую его, редактирую стили. И ничего… Посты как заколдованные прилипли…


  22. а вы уверены, что именно этот файл отвечает за размещение постов? Возможно, сама функция главная может быть в файле function.php. Но это так, догадки, так как я не видел сам файл и код.


  23. по моему это тоже функция


  24. Здравствуйте!
    Спасибо за статью получилось! Но есть еще вопросик… Как сделать если 1-й пост на всю, 2, 3 пополам, 4-й на всю т.д. ???
    Подскажите пожалуйста!
    Спасибо!

Оставить комментарий

*