WordPress как на ладони
Новые WordPress шаблоны Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Как вывести три поста в строке (Bootstrap)? UPD?

Извиняюсь за свои русский!

В slug-archive.php у меня отображаются миниатюры custom постов. Что мне сделать, чтобы в одном ряду отображались три поста и начал роботать Bootstrap.

Здесь уже был такой же вопрос (https://wp-kama.ru/question/razdelenie-vyvod-postov-v-tsikle), но в силу своего незнания php у меня нихрена не получается.

Спасибо за помощь.

<div class="container news2">
	<div class="row d-flex flex-wrap no justify-content-start">
		<div class="col-6 no">
<?php
$args = array( 'post_type' => 'zpravy', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
  <a href="<?php the_permalink(); ?>"> <img src="<?php the_field('obrazek_01') ?>" alt="" class="logo"></a>
   <?php echo '<div class="entry-content">';
  the_content();
  echo '</div>';
endwhile;
?>
	</div>
 </div>   
</div>

UPD.
-----------------------------------------------------------------------------------------

Наконец-то с помощью гугла я сделал так, чтобы все роботало.

<div class="container news2">
	<div class="row d-flex flex-wrap no justify-content-start">
		<div class="col-6 no">
<?php
$args = array( 'post_type' => 'zpravy', 'posts_per_page' => 10 );
$loop = new WP_Query( $args ); $counter = 0;
while ( $loop->have_posts() ) : $loop->the_post(); ?>

  <div class="odsun"><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a> </div>
  <a href="<?php the_permalink(); ?>"> <img src="<?php the_field('obrazek_01') ?>" alt="" class="logo"></a>
   <?php the_content();?>
  <?php 
				$counter++;
				if ($counter % 1 == 0) {
					echo '</div><div class="col-6 no">';
				} 
			?> 
			<?php
endwhile;
?>

Но у меня сейчас другу вопрос. Можете мне объяснить, как работает этот код? Что он обозначает?

$counter = 0 
и 
$counter++;
if ($counter % 1 == 0)
0
19 дней назад
  • 0

    Ну да: через счетчик.
    Я смотрю, вы отсчитываете колонки.
    Я отсчитывал РЯДЫ:

        <?php
    	$columns_num = 6; // The number of columns we want to display our posts
    	$i = 0; //Counter for .row divs
    	$args = array(
    		'post_status' => 'publish',
    		'posts_per_page' => -1,
    		'ignore_sticky_posts' => true
    	);
    	$my_query = null;
    	$my_query = new WP_Query( $args );
    
    	echo '<div class="row">';
    
    	/* Start the Loop */
    	while ( have_posts() ): the_post();
    
    	echo '<div class="col-md-' . 12 / $columns_num . '">';
    	?>
    	<?php get_template_part( 'singlecard-first' );  //это подключается описание отдельной карточки ?>
    	<?php 
    		echo '</div>';
    
    		if($i % $columns_num == $columns_num - 1 ) {  
    			echo '</div> <div class="row">';
    		}
    
    		$i++;
    
    	endwhile;
    
    echo '</div>';
    wp_reset_query();
    ?>

    3 строка снизу (echo '</div>';) - закрывающий тег в виде последнего ПУСТОГО ряда. Как видите, этот код позволяет произвольно менять количество колонок. Ну и в ряде случаев использование "гвоздями прибитой сетки" (col--) проще.
    В моем примере if($i % $columns_num == $columns_num - 1 ) по-русски будет так:
    Если значение счетчика разделить на количество колонок будет на 1 меньше количества колонок, (открывать новый ряд) И ПОСЛЕ этого добавлять счетчик.
    В вашем - что-то сам понять не могу: Исходное значение счетчика=0 ПО циклу - прибавляется 1. Если значение = 0 - новая колонка. По-моему, это очень странно. Но работает же...

    wordpresszero 16 дней назад

    Большое спасибо за ответ .
    Правильно я понимаю ваше решение?

    Счетчик 0,1,2,3,4,5 - то есть цифра 5 это 6 колонка.
    5%6 == 6-1 =>5=5 открываeт новый ряд.

    А почему работает мой код я не могу понять.

    pervect 16 дней назад

    Совершенно верно. Если использовать 4 бутрап с его флексами, то можно исключить пункт echo '<div class="col-md-' . 12 / $columns_num . '">';. там просто col ставим и всё. Получается православно чуть более чем полностью.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация