Вывод статей в две колонки

Вывод статей в две колонки в разделе категории

add_filter('post_class','category_two_column_classes');
function category_two_column_classes( $classes ) {
global $wp_query;
if( is_category() ) :
$classes[] = 'two-column-post';
if( $wp_query->current_post%2 == 0 ) $classes[] = 'two-column-post-left';
endif;
return $classes;
}

Внимание! в этой функции выполняется условие — if( is_category() ) : которое обусловлено тем, что класс будет добавлен лишь в разделе «категории». Это значит на других страницах (index.php, search.php и т.д.) двухколоночный вывод выполняться не будет. Но можно сделать и иначе, к примеру, поправить функцию и заменить условия вывода – только на главной.
Нам останется только поменять строки…

if( is_category() ) :

на…

if( is_home() ) :

Но если вам захочется вывести колонки только в определённой категории, то
…в скобках необходимо прописать ID категории… (номер)

if( is_category('2') ) :

Безусловный вывод колонками на всех страницах

add_filter('post_class','category_two_column_classes');
function category_two_column_classes( $classes ) {
global $wp_query;
$classes[] = 'two-column-post';
if( $wp_query->current_post%2 == 0 ) $classes[] = 'two-column-post-left';
return $classes;
}

А теперь правим файл стилей style.css – добавляем этот код куда-нить в самый конец документа.

.two-column-post { width: 47%; float: left; margin-left: 5.9%; }
.two-column-post-left { clear: left; margin-left: 0; }

ГДЕ … width: 47%; ширина (процентная) самих колонок. Здесь можно экспериментировать.

Безусловный вывод колонками на всех страницах — В ТРИ КОЛОНКИ

add_filter('post_class','category_three_column_classes');
function category_three_column_classes( $classes ) {
global $wp_query;
if( is_category() ) :
$classes[] = 'three-column-post';
if( $wp_query->current_post%3 == 0 ) $classes[] = 'column-post-left';
endif;
return $classes;
}

Что забавно, эта функция легко изменяема. Достаточно поменять оперативное число (оператор) и вывод в несколько колонок будет заказан в функции…
Ну и вот примерные стили CSS

.three-column-post { width: 30%; float: left; margin-left: 4.9%; }
.column-post-left { clear: left; margin-left: 0; }

– всё как обычно.

вывод категорий в две колонки — способ — 2

В этом случае нужно будет кропотливее поправлять код CSS под вашу тему – тем он и сложен) Но думаю, в принципе, и тут ничего сложного нет… на первый взор))
Для начала, в том файле, который отвечает за вывод нужной вам категории, пропишите вот этот код. Теперь, в определённой (нужной вам, для вывода колонками статей) задана функция вывода …

<div class="cat-colum" <?php post_class() ?> id="post-<?php the_ID(); ?>">
			<div class="demopost">
				<div class="img-post">
					<a href="<?php the_permalink() ?>"><?php echo get_the_post_thumbnail( $post->ID, 'thumbnail'); ?></a>
				</div>
				<div class="topcatposti">
					<time class="datecat"><?php the_time( get_option( 'date_format' ) ); ?></time>
				</div>
				<h2><a href="<?php the_permalink() ?>" rel="bookmark"  <?php the_title(); ?>"><?php the_title(); ?></a></h2>
				<?php the_excerpt(); ?>
				<div class="postcatfooter">
					<div class="fright"><a class="readmore" href="<?php the_permalink() ?>"><?php _e( 'Далее' ); ?></a></div>
			</div>
		</div>

И итог: в файл CSS прописываем этот код:

.demopost {
background:#fff;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
margin: 0 10px 20px 0;
padding: 15px;
width: 250px;
}
.cat-colum{
background: none;
display: inline-block;
vertical-align: top;
}
.img-post img{
width: 100%;
height: auto;
max-width: 100%;
}
.postcatfooter{
margin-top:10px;
height: 35px;
}
.datecat {
color: #999;
font-family: verdana;
font-size: 15px;
}
.topcatposti {
margin:15px 0;
}

на главной, категории, в поиске

if( is_category() || is_home() || is_search() ) :