vladislavignatyev
@vladislavignatyev
Frontend & backend, WEB-dev, WEB master

Создание цикла в цикле с разными $args?

У меня есть подобная конструкция:

$company_pname = wp_get_post_categories( $post->ID, array('fields' => 'all') );
	foreach( $company_pname as $cat_comp ){
	$args = array( 'post_type' => 'post-pharmacy', 'posts_per_page' => -1, 'name' => $cat_comp->slug); 
	$cat_comp = get_posts( $args );
	foreach( $cat_comp as $post ){ setup_postdata($post);
	$post_slug = $post->post_name;
	/* Мой контент, выводимые записи */
	}
}


Как, его же, переписать в стандартный цикл WP, допустим:

$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field' => 'slug'
        )
     )
);

$first_query = new WP_Query($args);

while ($first_query->have_posts()) :

    // initialization for $inner_args & backup the current global $post
    $inner_args = array(
      'post_type' => 'post-pharmacy', 
      'posts_per_page' => -1, 
      'name' => $first_query
    );
    $inner_query = new WP_Query($inner_args);

    while ($inner_query->have_posts()) :
       /* Мой контент, выводимые записи */
    endwhile;
    // restore the global $post from the previously created backup

endwhile;

Он к сожалению не работает.
Зачем это мне надо ? Только для того чтобы поставить пагинацию, если можно добавить пагинацию для foreach, то объясните пожалуйста как ?

Заранее спасибо.
  • Вопрос задан
  • 25 просмотров
Пригласить эксперта
Ответы на вопрос 1
trampick
@trampick
Веб-разработчик
Сначала делаете 1 запрос и необходимый результат сохраняете к примеру в массив. После этого не забудьте сделать wp_reset_postdata();

Затем запустите foreach по массиву и генерируйте необходимые запросы wp_query, не забывая юзать wp_reset_postdata();

Это ответ на Ваш вопрос. Я бы советовал как то по другому организовать сам алгоритм. Так как этот будет очень ресурсоемкий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы