Небольшое предисловие. У меня реально очень много блогов… три, если быть точным, плюс один, где я не писал уже больше года. Если сложить общее количество записей, то получится что-то порядка 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(). Гораздо правильнее было бы это реализовать через плагин.
Оставить комментарий