2012-03-10 21 views
0

我在WordPress中創建了一個自定義帖子類型,並且在單個帖子模板中,我使用get_post_custom()函數成功地拉入了自定義數據。爲什麼get_post_custom()在WordPress的循環中不工作?

但是在帖子列表的循環中,該函數不起作用,並返回一個空數組。

這是我有:

<?php $loop = new WP_Query(array('post_type' => 'web-design', 'posts_per_page' => 10)); ?> 

<?php $i = 0; ?> 

<?php while ($loop->have_posts() && $i < 3) { $loop->the_post(); ?> 

<article class="project-link <?php echo 'num' . $i ?>"> 
    <div class="pad"> 

     <?php $project_info = get_post_custom(); ?> 

     <?php 

     foreach ($project_info as $i => $values) { 
      print "$i {\n"; 
      foreach ($values as $key => $value) { 
       print "$key => $value\n"; 
      } 
      print "}\n"; 
     } 

     ?>  

     <?php echo $project_info['url'][0]; ?> 

而且我沒有什麼回來的。

有誰知道爲什麼這不起作用?它在單個帖子模板中工作正常,爲什麼不在循環中?

謝謝!

回答

0

這好像問題出在數據庫中。我注意到,如果我刪除了某些帖子,那麼它會開始工作正常。我還沒有找到這些帖子有什麼問題,但如果我刪除它們然後重新創建它們,它們通常都很好。

我對這個問題的任何人的建議是嘗試將你的一些帖子移到垃圾箱,看看它是否開始工作。

0

的post_custom()具有存儲在陣列中的變數..

如果你知道特定的鍵或值,你需要,你可以使用

或只是像這樣通過它們傳播:

<?php 

    $mykey_values = get_post_custom_values('my_key'); 
    foreach ($mykey_values as $key => $value) { 
    echo "$key => $value ('my_key')<br />"; 
    } 

?> 

或特定崗位

<?php 

    $custom_fields = get_post_custom(72); 
    $my_custom_field = $custom_fields['my_custom_field']; 
    foreach ($my_custom_field as $key => $value) 
    echo $key . " => " . $value . "<br />"; 

?> 
+0

感謝Obmerk,但由於某些原因,這仍然無法在循環內工作。出於某種原因,它只是返回一個空字符串或數組。它雖然在單個帖子上完美運行。 – shrewdbeans 2012-03-10 18:23:11

+0

如果它在單個帖子上工作 - 比它在循環中工作 - 問題可能是你的自定義查詢。注意你在你的例子中顯示的是NESTED數組 – 2012-03-10 18:43:57

+0

我看,謝謝你的解釋,我該如何設置測試我的自定義查詢?我用我的$循環對象使用了print_r(),它沒有返回任何自定義值。這個問題是否也可以在functions.php文件中設置自定義帖子?或者,它在單個帖子節目中的作用是可以的嗎?再次感謝 – shrewdbeans 2012-03-11 08:27:58

相關問題