2013-10-13 203 views
1

首先多WordPress的自定義查詢,這裏是代碼:行爲古怪

<?php 
    $categories = get_categories(); 

    foreach ($categories as $cat) { if ($cat->count >= 4) { ?> 
    <section class="home-section row"> 
     <div class="large-12 columns"> 
      <h3 class="ug-home-title"><span><?=$cat->name;?></span></h3> 
      <div class="row"> 
       <div class="large-6 columns"> 
        <?php 
         $args = array(
          'post_type' => 'post', 
          'category_name' => $cat->name, 
          'posts_per_page' => 1 
         ); 
         $query = new WP_Query($args); 
         while ($query->have_posts()) : $query->the_post(); 
        ?> 
        <article class="ug-panel"> 
         <ul class="ug-tag-list"> 
          <?php 
           $post_categories = wp_get_post_categories($post->ID); 
           foreach ($post_categories as $c) { 
            echo '<li><a href="'.get_category_link(get_cat_ID(get_category($c)->name)).'">'.get_category($c)->name.'</a></li>'; 
           } 
          ?> 
         </ul> 

         <?php (has_post_thumbnail()) ? the_post_thumbnail() : displayBackupImage(); ?> 

         <footer class="ug-panel-inner"> 
          <p><em><?= 'il y a '.human_time_diff(get_the_time('U'), current_time('timestamp')); ?></em></p> 
          <h4><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h4> 
         </footer> 
        </article> 
        <?php endwhile; wp_reset_postdata()?> 
       </div> 
       <div class="large-6 columns"> 
        <ul class="ug-article-list"> 
         <?php 
          $args = array(
           'post_type' => 'post', 
           'category_name' => $cat->name, 
           'posts_per_page' => 3, 
           'offset' => 1 
          ); 
          $query = new WP_Query($args); 
          while ($query->have_posts()) : $query->the_post(); 
         ?> 
         <li> 
          <article class="clearfix"> 
           <a href="<?php echo get_permalink(); ?>" class="left picture"> 
            <?php (has_post_thumbnail()) ? the_post_thumbnail() : displayBackupImage(); ?> 
           </a> 
           <h5><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a> <br><small>publié il y a <em><?= human_time_diff(get_the_time('U'), current_time('timestamp')); ?></em></small></h5> 
          </article> 
         </li> 
         <?php endwhile; wp_reset_postdata();?> 
        </ul> 
       </div> 
      </div> 
     </div> 
    </section> 
    <hr class="home-hr">    
    <?php }} ?> 

正如你所看到的來說,首先是含有多於4個職位的類別一個簡單的foreach循環。然後,我使用兩個不同的自定義查詢在我的代碼中的兩個不同位置顯示這些帖子。

這很好,但由於某些原因,儘管它們包含帖子,它仍然會在某些類別上失敗,我不知道爲什麼。我附上了截圖,以便您可以看到輸出。

任何答案非常感謝。

編輯:它似乎發生當一個帖子同時屬於兩個類別......衝突可能?我真的很茫然。

編輯2:不,它無關的是,某些類別顯示相同的後兩次就好了......

The screenshot

+0

嘗試添加wp_reset_query();在你的wp_reset_postdata()旁邊; – loQ

回答

0

事實證明我是個白癡。

答案就在改變這種'category_name' => $cat->name這個'category_name' => $cat->slug

蛞蝓是真正的標識符。 name屬性可以是「香蕉」,它仍然會鏈接到實際類別。