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, то объясните пожалуйста как ?

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

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

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

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

Войти через центр авторизации
Похожие вопросы