марта 04, 2008

Модификация Wordpress: организация публикаций на главной странице в две колонки

Wordpress theme, главная страница в две колонки

Меня этот вопрос не то чтобы мучал, но удивляло отсутствие возможности в стандартной сборке Вордпресса представления постов на первой странице хотя-бы в две колонки. Многие шаблоны дизайна имеют довольно широкую область, в которой публикуются сообщения. И читать длинные строки не совсем удобно. К тому же особо активно пишущие блоггеры, желающие вместить побольше публикаций на первой странице, в итоге получают километровые полосы прокрутки.

Свой взгляд на решение этой проблемы опубликовала девушка по имени Rachel. Она предлагает модификацию двух файлов в выбранной вами теме — index.php и style.css. Устанавливается своеобразный «переключатель», сортирующий публикации по разным колонкам. А детально схема выгдядит так:

В файле index.php добавляется код в четырех местах:

Перед началом Wordpress loop:

<?php $col = 1?>

Выбор первой колонки.

Сразу после начала Wordpress loop:

<?php if ($col == 1) echo "<div class=\"row\">"; ?>

Начало следующей строки.

Внутри цикла Wordpress loop:

Модифицируем сам цикл:

<div class="post col<?php echo $col;?>" id="post-<?php the_ID(); ?>">

Фрагмент col<?php echo $col;?> добавляется к классу сообщения, поскольку для форматирования колонок будет использована таблица стилей.

Вместо окончания цикла Wordpress:

<?php if ($col == 1) echo "</div>"; <?php (($col==1) ? $col=2 : $col=1); endwhile; ?>

Цикл Wordpress заканчивается командой endwhile — этот оператор убираем.

Алгоритм данной модификации следующий:

Мы на первой колонке? Да: Переходим на вторую колонку. Нет: Переходим на первую.

В таблице стилей style.css добавляются три строки:

.row { clear: both; } .col1 { width: 200px; float: left; padding: 0 10px; } .col2 { width: 200px; float: right; padding: 0 10px; }

Соответственно ширина колонок и отступы указываются по своему усмотрению. Колонки различной длины выравниваются по высоте благодаря классу .row.

7 комментариев:

  1. Раскажите подробнее пожалуста, а то на последний фрагмент, который нужно вставлять в index.php пхп матюгается... Может я не туда вставляю?..

    ОтветитьУдалить
  2. Скорее всего не туда. Чтобы было нагляднее, я прилагаю ссылку на модифицированный файл index.php из темы по умолчанию (default). Вставленный код отмечен комментарием "1 вставка", "2 вставка" ...

    Развернутый файл: в группе обсуждения.

    Там же можно его скачать, но вот прямая ссылка index.php

    Не забывайте, все водпрессовские файлы — в кодировке UTF-8.

    ОтветитьУдалить
  3. Супер!! Спасибо большое, то что доктор прописал, а я действительно не туда тыкал... Эх, если бы еще сделать в каждой колонке вывод отдельной категории... ;)

    ОтветитьУдалить
  4. Почему-то на 2-хсайдбарных темах такой финт не канает... :(

    ОтветитьУдалить
  5. Надо с CSS разбираться. Стиль вывода двух колонок делать по-своему. В этом способе все просто: 1-я прижимается влево, 2-я - вправо. В других темах, очевидно, надо искать другие способы, с учетом форматирования и позиции второго сайдбара.

    ОтветитьУдалить
  6. Что то я в этих css запутался немного ? а есть какя нибудь программа или что то вроде редактора для этих css чтоб их удобнее редактировать можно было.

    ОтветитьУдалить
  7. Adobe Dreamweaver CS3.
    Либо попроще но для опытных профессионалов - Notepad++.

    ОтветитьУдалить

Комментирование запрещено.

Примечание. Отправлять комментарии могут только участники этого блога.