• Нужна помощь! Нужно сделать 3 уровня вложенных циклов. Имеется следующее:
    1 уровень. стандартный цикл записи single.php
    2 уровень. цикл вывода записей по тегу, равному титлу цикла 1 уровня. Выводится внутри стандартного. Цикл сделан с помощью new wp_Query().
    Нужно сделать еще один цикл 3 уровня, который будет схож по условиям на цикл 2 уровня. Пробовал сделать снова через new wp_Query, но в цикле берётся титл из цикла 2 уровня.
    Подскажите, как это можно сделать?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Пробовал сделать снова через new wp_Query, но в цикле берётся титл из цикла 2 уровня.

    Приведите код, который вы пробовали (со всеми тремя циклами).

    Приведите код, который вы пробовали (со всеми тремя циклами).

    <?php
    if(have_posts()) :
    while(have_posts()) : the_post(); 
    
    the_title(); echo ' ('.get_the_date('Y').')';
    $tag_title = str_replace(' ', '-', get_the_title());
    $tracks_id = 23;
    /* Условия второго цикла внутри стандартного цикла файла single.php */
    $tracks = new WP_Query(
    	array( 'cat' => $tracks_id, 'tag' => $tag_title, 'order' => 'ASC', 'posts_per_page' => 50 )
    );
    /* Второй цикл внутри первого */
    if($tracks -> have_posts()) :
    while ($tracks -> have_posts($tracks)) : $tracks -> the_post();
    the_title(); echo get_post_meta($post->ID, 'duration', 1);
    $track_title = get_the_title();
    $track_name = str_replace(' ', '-', $track_title);
    /* В переменную $track_title я записал значение get_the_title() второго цикла */
    $video = new WP_Query(
    	array( 'name' => $track_name, 'posts_per_page' => 1 )
    );
    if($video -> have_posts()) :
    while ($video -> have_posts($video)) : $video -> the_post();
    the_title();
    /* Здесь вместо the_title() третьего цикла, выводится the_title() второго цикла */
    endwhile;
    endif;
    endwhile;
    endif;
    endwhile;
    endif;
    ?>

    Примерно так всё выглядело, когда я пытался сделать третий цикл.

Просмотр 2 ответов — с 1 по 2 (всего 2)

Тема «Не работают многоуровневые циклы» закрыта для новых ответов.