Проблема foreach в функции get_posts или wp_query - PullRequest
0 голосов
/ 30 января 2020

Моя категория поступает из разделенного запятыми места, а затем я помещаю ее в массив args wp_query, но мой запрос дает мне только сообщения последней категории. Пожалуйста, посмотрите на мой код ниже:

$content_arr = explode(",", $content);

  if ( is_array($content_arr) && count($content_arr) > 0 ) {
    foreach ($content_arr as $category_name) { // Category loop
      $args = array(
        'category_name'  => trim($category_name),
        'posts_per_page' => 7,
        'order'          => 'DESC',
        'orderby'        => 'post_date',
      );

      $output = '';      
      // $posts = get_posts($args);
      $post_counter = 1;

      $the_query = new WP_Query( $args );

      if ( $the_query->have_posts() ) : 
        while ( $the_query->have_posts() ) : $the_query->the_post(); 
            if ( has_post_thumbnail() ):
              //the_post_thumbnail();
            else: 

            endif;
            $output .= '<div class="col-md-4 mb-5">'.get_the_ID().'-'.get_the_title().'</div>';
            $post_counter++;
        endwhile; 
        $the_query->reset_postdata();
        echo $post_counter."-";
      endif;
    ```
In **$content_arr** have 3 category as array element so first foreach is running 3 times but my output is showing only one category posts.
Somehow it is resetting my previous category's results.
How can i show my all categories posts one by one?
Thanks.

Ответы [ 2 ]

0 голосов
/ 31 января 2020

На самом деле я допустил логическую ошибку здесь, в строке номер 11. Она не должна инициализировать строку, $ output = ''; Спасибо.

0 голосов
/ 30 января 2020

Если вы печатаете переменную $output за пределами foreach l oop, тогда, пожалуйста, определите $output= ''; за пределами l oop, это может помочь, чтобы сбросить ваш результат и отобразить только последний l oop результаты

** Убедитесь, что вы передаваете слагов категорий в WP_Query

Надеюсь, это поможет вам отследить ваш код

...