Поддержка Проблемы и решения Как объединить два цикла в колонки

  • Решено aleks

    (@aleks683)


    Доброго времени суток! Целый день голову ломаю.

    Есть код вывода последних записей рубрики

    <?php
     $pc = new WP_Query('cat=17&orderby=date&posts_per_page=5'); ?>
     <?php while ($pc->have_posts()) : $pc->the_post(); ?>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array()); ?></a>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
     </div>
     <?php endwhile; ?>

    и аналогичный другой рубрики

    <?php
     $pc = new WP_Query('cat=18&orderby=date&posts_per_page=5'); ?>
     <?php while ($pc->have_posts()) : $pc->the_post(); ?>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array()); ?></a>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
     </div>
     <?php endwhile; ?>

    Задача объединить их вместе (чтобы шли в две колонки), но в верху перед ними вставить еще один цикл

    <div class="post-new2">Пост опубликован: <?php the_time('j F Y'); ?> </div>

    В результате должно быть вот так:

    Пост опубликован: 21 февраля 2017
    Пост категории 17 Пост категории 18

    Пост опубликован: 20 февраля 2017
    Пост категории — 2 17 Пост категории -2 18

    и т.д.

    Никто не знает как это дело можно правильно реализовать?

Просмотр 15 ответов — с 1 по 15 (всего 27)
  • а в чем проблема то?

    Автор aleks

    (@aleks683)

    Не могу корректно совместить коды

    этот

    <?php
     $pc = new WP_Query('cat=17&orderby=date&posts_per_page=5'); ?>
     <?php while ($pc->have_posts()) : $pc->the_post(); ?>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array()); ?></a>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
     </div>
     <?php endwhile; ?>

    с этим

    <?php
     $pc = new WP_Query('cat=18&orderby=date&posts_per_page=5'); ?>
     <?php while ($pc->have_posts()) : $pc->the_post(); ?>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array()); ?></a>
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
     </div>
     <?php endwhile; ?>

    и вверху всего этого вот этот

    <div class="post-new2">Пост опубликован: <?php the_time('j F Y'); ?> </div>

    а зачем их совмещать то?
    php-код у вас уже есть, вам просто нужна правильная css-разметка.

    
    <div style="display:inline-flex;">
    
    <div class=first-column"">
    код первой колонки
    </div>
    
    <div class=second-column"">
    код первой колонки
    </div>
    
    </div>
    

    что-то типа этого. а ваш «пост опубликован» — должен быть в ваших же php-кодах, зачем он отдельно непонятно.

    Автор aleks

    (@aleks683)

    Вот рабочий код

    `<table>
    <tbody>
    <td>
    <?php
    $pc = new WP_Query(‘cat=17&orderby=date&posts_per_page=5’); ?>
    <?php while ($pc->have_posts()) : $pc->the_post(); ?>
    <a href=»<?php the_permalink(); ?>» title=»<?php the_title(); ?>»><?php the_post_thumbnail( ‘medium’ ); ?></a>
    <a href=»<?php the_permalink(); ?>» title=»<?php the_title(); ?>»><?php the_title(); ?></a>
    </div>
    <?php endwhile; ?>
    </td>
    <td>
    <?php
    $pc = new WP_Query(‘cat=18&orderby=date&posts_per_page=5’); ?>
    <?php while ($pc->have_posts()) : $pc->the_post(); ?>
    <a href=»<?php the_permalink(); ?>» title=»<?php the_title(); ?>»><?php the_post_thumbnail( ‘medium’ ); ?></a>
    <a href=»<?php the_permalink(); ?>» title=»<?php the_title(); ?>»><?php the_title(); ?></a>
    </div>
    <?php endwhile; ?>
    </td>
    </tr>
    </tbody>
    </table>`

    А куда вставить
    <div class="post-title">Пост опубликован: <?php the_time('j F Y'); ?> </div>
    ??

    Чтобы он был над таблицей и в цикле. Нужно как то цикл в цикле создать?? Или что делать вообще надо?

    что значит над таблицей то?
    у вас там в каждой колонке таблицы по 5 записей.
    значит дату публикации надо вставлять в саму таблицу.
    сразу после <?php while ($pc->have_posts()) : $pc->the_post(); ?>

    Автор aleks

    (@aleks683)

    Я так и делал, получается дата публикация по ширине первой колонке (а она должна быть во всю ширину колонок, как заголовок), и вторая колонка разъезжается по отношению к первой.

    Автор aleks

    (@aleks683)

    css я весь перепробовал, тут надо как то все в один цикл делать

    чтобы было:
    дата-заголовок
    1 запись 2 запись
    дата-заголовок
    3 запись 4 запись

    бредово выглядит.
    у вас 1 и 2, так же как и 3 с 4 записью будут с одной и той же датой?

    Я так и делал, получается дата публикация по ширине первой колонке (а она должна быть во всю ширину колонок, как заголовок), и вторая колонка разъезжается по отношению к первой.

    
    <table>
    	<tr>
    		<td colspan="2">Дата: 21.01.2017</td>
    	</tr>
    	<tr>
    		<td>Пост 1</td>
    		<td>Пост 2</td>
    	</tr>
    </table>
    • Ответ изменён 7 лет, 1 месяц назад пользователем Riskful.
    Автор aleks

    (@aleks683)

    нет как раз даты разные в этом вся и проблема: как запихать <?php while ($pc->have_posts()) : $pc->the_post(); ?> в цикл?

    дата-заголовок 26 февраля
    1 запись 2 запись
    дата-заголовок 25 февряля
    3 запись 4 запись

    Автор aleks

    (@aleks683)

    riskful

    <table>
    	<tr>
    		<td colspan="2">Дата: 21.01.2017</td>
    	</tr>
    	<tr>
    		<td>Пост 1</td>
    		<td>Пост 2</td>
    	</tr>
    </table>

    Тогда Дата: 21.01.2017 не в цикле и пишется один раз

    • Ответ изменён 7 лет, 1 месяц назад пользователем aleks.

    вы в паинте можете нарисовать, что в итоге хотите получить? потому что я не понимаю, как у вас на ширину 2-х колонок должны выводится две даты от записей из разных колонок.

    Как я понял у тебя есть определенные посты которые относятся к нескольким категориям, и тебе необходимо выводить посты с датой и со списком всех категорий к которым относится пост?

    Автор aleks

    (@aleks683)

    Вот так Пример

    Автор aleks

    (@aleks683)

    riskful Примерно да

    как на рисунке

Просмотр 15 ответов — с 1 по 15 (всего 27)
  • Тема «Как объединить два цикла в колонки» закрыта для новых ответов.