Intereting Posts
Когда следует использовать add_action при регистрации / вставка сценариев Как обновить настройку темы после изменения цвета внутри wpColorPicker? Как расширить изображение, чтобы охватить всю область заголовка? (двадцать двенадцать тем) почему «else» нарушает оператор «if»? Силовой «постоянный» почтовый кеш результатов короткого кода Настройка Php-сервера с помощью ISAP Добавление ширины и высоты в wp_get_attachment_image_src Когда процесс wordpress & lt;! – nextpage – & gt; Почему функция the_excerpt () возвращает выдержку на главной странице и обрезает содержимое на боковой панели? Как извлечь данные из сериализованного массива сообщений? Не уверен, что лучший способ сохранить пользовательские данные плагина Принудительное wordpress для запроса информации о FTP на тему / установка / обновление плагина Является ли author.php основным файлом? Используйте один шаблон для разных пользовательских типов сообщений с одинаковой разметкой Пользовательские правила перезаписи для запроса $ _GET

Разрыв выхода CPT на две колонки

У меня есть следующий код. У меня есть левый div и правый div. Как отредактировать приведенный ниже код, чтобы вытащить первые X CPT-данные и поместить их в правый столбец, а следующие данные CPT в XX номер для ввода в левый столбец? Сейчас я просто печатаю тот же запрос в двух столбцах. Любая помощь будет принята с благодарностью.

<div class="generic-page-container clearfix smallwidth"> <div class="content_left"> <?php $args = array( 'post_type' => 'testimonials', 'posts_per_page' => 10 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); //the_title(); echo '<div class="testimonials_block">'; the_content(); echo '</div>'; endwhile; ?> </div><!--/#content_left --> <div class="content_right"> <?php $args = array( 'post_type' => 'testimonials', 'posts_per_page' => 10 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); //the_title(); echo '<div class="testimonials_block">'; the_content(); echo '</div>'; endwhile; ?> </div><!--/#content_right --> </div><!--#generic-page-container --> 

Не запускайте запрос дважды. Используйте get_posts($args) вместо new WP_Query . Затем используйте array_slice() для генерации в массивы равной длины и array_slice() их таким образом.

array_slice() : https://stackoverflow.com/questions/5393028/how-can-i-take-an-array-divide-it-by-two-and-create-two-lists

Используйте один запрос и свойство класса WP_Query::$current_post индекс которого будет начинать с 0 .

Когда мы перебираем доступные сообщения, мы проверяем значение $posts_per_page $current_post чтобы довести его до значения $posts_per_page .

Если $current_post меньше половины (в этом случае 5), мы нажимаем разметку на массив $content['left'] и наоборот правую сторону $content['right'] когда мы находимся на должностях с 6 по 10.

Наконец, где вам нужна разметка / содержание, мы взорвали массив и эхо его …

 <?php $posts_per_page = 10; $content = array('left' => '', 'right' => ''); $args = array( 'post_type' => 'testimonials', 'posts_per_page' => $posts_per_page ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); $column = ($loop->current_post+1) < ($posts_per_page/2) ? 'left' : 'right'; $content[$column] .= '<div class="testimonials_block">' . get_the_content() . '</div>'; endwhile; ?> <div class="generic-page-container clearfix smallwidth"> <div class="content_left"><?php echo implode('', $column['left']);?></div> <div class="content_right"><?php echo implode('', $column['right']);?></div> </div><!--#generic-page-container --> 

Есть и другие способы справиться с этим, это всего лишь одно …