web-dev-qa-db-fra.com

Child_of n'affichant pas tous les enfants posts .. via get_posts

J'ai mis en place cette boucle pour afficher tous les messages des enfants du chat désiré, mais je ne reçois aucun des messages de l'un des chats des enfants ..
Je ne suis pas sûr d’utiliser la meilleure méthode pour accomplir ce que j’essaie de faire.

 <?php
        $posts = array();
         $categories = get_categories('child_of=5');
         foreach($categories as $category) {
           $args=array(
            'post_per_page' => 5,
            'orderby' => 'post_date',
            'numberposts' => 45,
            'category__in' => array($category->term_id)             
           );
         $posts = $posts + get_posts($args);
        } // Close your foreach here
             shuffle($posts);
              if ($posts) {
                foreach($posts as $post) {
                  setup_postdata($post);
                   ?>
                    <div <?php post_class('boxy');?>><div  class="soc-label" ></div>

                  <?php 
                      if ( has_post_thumbnail()) {
                      $full_image_url =    wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
                      echo '<a href="' . $full_image_url[0] . '" rel="lightbox" title="' . the_title_attribute('echo=0') . '" >';
                      the_post_thumbnail('thumbnail');
                      echo '</a>';
                    }
                   ?>

                    <?php the_content(''); ?>
                    </div>


        <?php } 
           } 

        ?>

J'utilise les résultats dans une sorte de mosaïque en mosaïque avec Isotope, et je remue les résultats, c'est aussi un must. Tous les conseils seraient appréciés si j'ai passé les deux dernières semaines à aller aussi loin que je suis maintenant.

1
StephenPerrett

Votre foreach est vraiment faux. Essayez de combiner les identifiants de catégorie dans un tableau, puis d'exécuter une requête uniquement pour obtenir les publications souhaitées.

Edit: lisez vos commentaires. Essayez d’utiliser une fonction de tableau telle que array_merge au lieu du + pour combiner les tableaux de résultats obtenus. Voyez si cela aide.

1
Otto

J'étais capable de le faire fonctionner en utilisant array_merge () .. Voici le code .. peut encore avoir quelques erreurs de code, mais cela fonctionne.

    <?php
        $posts = array();
         $categories = get_categories('child_of=4');
         foreach($categories as $category) {
           $args=array(         
            'orderby' => 'post_date',
            'numberposts' => 40,
            'category__in' => array($category->term_id)             
           );
         $posts = array_merge($posts,get_posts($args));
        } // Close your foreach here
             shuffle($posts);
              if ($posts) {
                foreach($posts as $post) {
                  setup_postdata($post);
                   ?>
                    <div <?php post_class('boxy');?>><div class="soc-label" ></div>

                  <?php 
                      if ( has_post_thumbnail()) {
                      $full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
                      echo '<a href="' . $full_image_url[0] . '" rel="lightbox" title="' . the_title_attribute('echo=0') . '" >';
                      the_post_thumbnail('thumbnail');
                      echo '</a>';
                    }
                   ?>

                    <?php the_content(''); ?>
                    </div>


        <?php } 
           } 

        ?>
0
StephenPerrett