2011-05-26 89 views
2

我需要在JSON供稿腳本中檢索WordPress帖子的標籤。下面的代碼在原始腳本中,但是如果帖子沒有超過兩個標籤並且引發警告Warning: Invalid argument supplied for foreach(),則會中斷。在遍歷Wordpress JSON供稿時出現的「警告:針對foreach()提供的無效參數」

$tags = array(); 
foreach((get_the_tags()) as $tag) { 
    $tags[] = $tag->name; 
} 
$single["tags"] = $tags; 

下面是一些代碼,我更新,以得到它,如果還有不到兩個標籤的工作,但這樣會導致所有的標籤附加到在接下來的每一個崗位。因此,如果第一篇文章中包含「tag1」和「tag2」,第二篇文章中包含「tag3」和「tag4」,則JSON Feed中的第三篇文章將包含「tag1」,「tag2」,「tag3」,tag4 」和‘tag5’(哪怕它只是‘tag5’

$my_tags = get_the_tags(); 
if ($my_tags){ 
    foreach($my_tags as $tag) { 
     $tags[] = $tag->name; 
    } 
} 
+2

在開始每個新帖子之前,只需用'$ tags = array()'重置您的$ tags'數組。 – 2011-05-26 14:53:59

+0

你的代碼片段可能被放置在另一個循環中,它會覆蓋所有單曲。在開始閱讀下一個標籤之前,您是否清空標籤數組? – Hyperboreus 2011-05-26 14:54:21

回答

2

有一個函數來檢查它是否是一個數組,它的命名is_array(),閱讀更多 - >http://php.net/manual/en/function.is-array.php

if (is_array($my_tags)){ 

也會在您每次循環發佈帖子時清空該陣列,只需添加第一個示例中的代碼即可:

$my_tags = array(); 
$my_tags = get_the_tags(); 
if (is_array($my_tags)){ 
相關問題