Небольшое предисловие. У меня реально очень много блогов… три, если быть точным, плюс один, где я не писал уже больше года. Если сложить общее количество записей, то получится что-то порядка 300 постов. Ходить и выискивать по блогам, обновлять все и следить за всем вместе мне не хочется. И я решил просто зарегистрировать новый домен и перенести все сюда.
В WordPress есть виджет Архивы, с помощью которого можно выводить список записей за определенный месяц (неделю, год и т.д.). По умолчанию данный виджет выводит всю информацию в один столбик. А мне надо в два. Как это сделать. Я не стал заморачиваться со всякими плагинами, а внес изменения непосредственно в код. Криво, но мне лень делать иначе.
Ищем и открываем файл wp-includes/general-template.php
, там примерно на 935 строчке будет следующий код:
$afterafter = $after;
$ix = 0;
foreach ( (array) $arcresults as $arcresult ) {
$url = get_month_link( $arcresult->year, $arcresult->month );
/* translators: 1: month name, 2: 4-digit year */
$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
if ( $show_post_count )
$after = ' ('.$arcresult->posts.')' . $afterafter;
//$output .= get_archives_link($url, $text, $format, $before, $after);
$ix++;
if ( ($ix % 2) == 1 ) {
$output .= get_archives_link($url, $text, "custom", "<li style="float:left;">", "</li>");
} else {
$output .= get_archives_link($url, $text, "custom", "<li style="float:right; width:50%;">", "</li>");
}
}
Он отвечает за выборку месяцев, когда был создан хоть один пост, и вывод этих месяцев в виджет Архив. В результате этого кода, в переменной $output
появляется массив строчек вида:
<li>ссылка на месяц</li>
Я выделил строчки, которые я добавил. В принципе, все тут понятно. Вводим переменную $ix
, увеличиваем ее на 1 с генерацией каждой строчки. Делим по модулю на 2. Если есть остаток — добавляем стиль float:left
, нет — float:right
. Строчку 9 надо закомменитровать.
Это очень кривой и не оптимальный способ, т.к. мы игнорируем любые параметры, которые передаются функции wp_get_archives()
. Гораздо правильнее было бы это реализовать через плагин.