2016-11-01 6 views
1

Ich habe 2 Post-Typen und ich möchte sie abwechselnd ausgeben, aber ohne viele Schleifen, so fand ich this solution, die das tut.Wordpress: Schleife durch abwechselnde Post-Typen und Ausgabe vorgestellten Bild

Allerdings ist es nicht ideal, da ich die_post_thumbnail ausgeben muss, die ich nicht mit dieser Methode tun kann (echo $smallPosts->posts[$i]->post_thumbnail; tut nichts). Zusätzlich habe ich gelesen post_content ist nicht das gleiche wie the_content(); - mit dem letzteren, was ich verwenden möchte.

Irgendwelche Vorschläge, wie ich die alternierenden Post-Typen durchlaufen kann und mehr Kontrolle über die Ausgabe habe, damit ich the_post_thumnail usw. verwenden kann?

Unten ist mein Code, der funktioniert, tut aber nicht ganz das, was ich brauche.

<?php $args = array(
     'post_type' => 'small_post', 
     'posts_per_page' => 3 
    ); 
    $smallPosts = new WP_Query($args); 

    $args = array(
     'post_type' => 'full_post', 
     'posts_per_page' => 3 
    ); 
    $fullPosts = new WP_Query($args); 



    for ($i = 0; $i < 3; $i++) { 
     if ($smallPosts->post_count > $i) 

      echo $smallPosts->posts[$i]->post_title; 
      echo '<br />'; 
      echo $smallPosts->posts[$i]->post_content; 
      echo '<br />'; 

     if ($fullPosts->post_count > $i) 
      echo $fullPosts->posts[$i]->post_title; 
      echo '<br />'; 
      echo $fullPosts->posts[$i]->post_content; 
      echo '<br />'; 
     }  

    ?> 
+1

Ich bin mir nicht sicher, ob ich deine Frage vollständig verstanden habe, kannst du nicht einfach gehen? Echo $ smallPosts-> posts [$ i] -> post_thumbnail; '? Könnten Sie bitte diesen Code am Ende Ihres Codes hinzufügen und uns sagen, was er ausgibt: 'echo '

', var_dump($smallPosts), '
'; Echo '
'; Echo '
', var_dump($fullPosts), '
'; sterben; ' –

+1

Hallo @JethroHazelhurst, versuchte ich Echo $ SmallPosts-> Beiträge [$ i] -> post_thumbnail; aber es tut nichts. Hinzugefügt den Code und die Ausgabe ist hier https://codepen.io/kgconnect16/pen/ameLLQ – icabob91

+0

Hallo, es sieht nicht wie es gibt eine Eigenschaft namens post_thumbnail oder eine Miniatur-Eigenschaft, so werden Sie nicht sein in der Lage, Funktionen zu verwenden, die nicht vorhanden sind ... Wie fügen Sie Ihre Miniaturbilder hinzu? –

Antwort

0

Dies ist meine Lösung, die beide Arten Post gibt und die Zeit, veröffentlichten sie abgewechselt werden kann, und ich kann the_thumbnail verwenden(); und andere Funktionen, die ich brauche. Außerdem habe ich if-Anweisungen verwendet, um Klassen hinzuzufügen, da die verschiedenen Post-Typen unterschiedlich formatiert werden müssen.

    <ul>      
        <?php 

         $args = array( 
          'posts_per_page' => 10, 
          'post_type' => (array('small_post','full_post')), 
          ); 
         query_posts($args); ?> 

         <?php if (have_posts()) : ?> 

         <?php while (have_posts()) : the_post(); ?> 
          <?php if (get_post_type(get_the_ID()) == 'small_post') { ?> 
          <li class="article small-post" style=""> 
           <?php if(has_post_thumbnail()) :?> 
            <a href="<?php the_permalink(); ?>"> 
             <?php the_post_thumbnail(''); ?> 
            </a> 
           <?php endif;?> 
           <a href="<?php the_permalink(); ?>"> 
            <h3> 
             <?php the_title(); ?> 
            </h3> 
           </a> 
           <p><?php the_excerpt(); ?></p> 
          </li> 
         <?php } ?>  

         <?php if (get_post_type(get_the_ID()) == 'full_post') { ?> 
          <li class="article full-post" style=""> 
           <?php if(has_post_thumbnail()) :?> 
            <a href="<?php the_permalink(); ?>"> 
             <?php the_post_thumbnail(''); ?> 
            </a> 
           <?php endif;?> 
           <a href="<?php the_permalink(); ?>"> 
            <h3> 
             <?php the_title(); ?> 
            </h3> 
           </a> 
           <p><?php the_excerpt(); ?></p> 
          </li> 
         <?php } ?>      
         <?php endwhile; ?> 


      <?php wp_reset_postdata(); ?> 

      <?php else : ?> 
      <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
      <?php endif; ?> 

      </ul> 
Verwandte Themen