2014-10-03 83 views
1

我想用這一段代碼來顯示特定類別的職位在一個WordPress網站的首頁:get_posts()顯示所有的職位總是相同的標題

<?php $args = array('category' => 2); 
      $news = get_posts($args); 

      foreach ($news as $new) : setup_postdata($new); ?> 

      <img data-slidecaption="<div class='caption'><h2><?php the_title(); ?></h2><p><?php the_excerpt(); ?></p><a href='<?php the_permalink(); ?>'>Leggi tutto</a></div>" src=""> 
    <?php endforeach; 
    wp_reset_postdata();?> 
    </div> 

我有,例如,三個職位與頭銜:帖子1,2後,郵政3.

查詢工作正常,並且正確地顯示每個帖子的內容,但標題總是從最新的帖子之一。永久鏈接也是如此。我究竟做錯了什麼?

+0

至於我記得,'the_title()'應該在'loop'使用。這可能會引起誤解,但使用「foreach」並不是WP定義爲「循環」的東西。 – 2014-10-03 16:29:06

+0

它可以是有意義的,但我直接從實例圖克代碼的文件中:http://codex.wordpress.org/Template_Tags/get_posts – Carlo 2014-10-03 16:42:53

+0

也許有在此之前彼此循環。 嘗試在'foreach'之前添加'wp_reset_postdata();'。 – 2014-10-03 16:44:26

回答

2

the_title()顯示當前職位/頁活躍在循環的稱號。 get_posts進行獨立查詢,而不會影響您的主循環。使用

<?php echo $new->post_title; ?> 

顯示新聞項目的標題。

或者,它甚至會更好,應用正確的過濾器藏漢:

<?php echo apply_filters('the_title', $new->post_title); ?> 

對於固定鏈接,使用

<?php echo get_permalink($new->ID); ?> 
+0

感謝您的答案。括號之間的爭論應該是身份證,而不是帖子標題,正如Sunil Chaudhary在他的回答中所做的那樣 – Carlo 2014-10-04 10:01:37

+1

這就是對的。雖然,因爲你已經有了標題,實際上根本不需要使用get_the_title。我編輯得適當。 – MSTannu 2014-10-04 14:27:13

2

使用<?php echo get_the_title($new->ID);?>的標題和你的循環 使用<?php echo get_permalink($new->ID); ?>用於固定鏈接,你會得到你想要的結果。我無法弄清楚你想要做什麼,但按照我的編輯它會解決你的問題。

+0

我試圖在幻燈片中顯示最新的帖子,並在標題中使用標題和摘錄。所以,這個解決方案的工作,但我仍然不明白爲什麼在文檔中的例子是不同的:http://codex.wordpress.org/Template_Tags/get_posts – Carlo 2014-10-04 10:05:11

相關問題