2010-01-07 110 views
1

以下腳本應排除分配給「我的菜單」類別的項目。但是,他們仍然顯示出來。有人能幫助我確定邏輯缺陷嗎?PHP鏈接列表:這個腳本有什麼問題?

<?php 
global $post; 
$cat=get_cat_ID('my-menu'); 
$catHidden=get_cat_ID('hidden'); 
$count=0; 
$myposts2=get_posts(array('post__not_in'=>get_option('sticky_posts'),'cat'=>-$cat,'cat'=>-$catHidden,'showposts'=>5)); 
foreach($myposts2 as $post) : 
    $count++; 
    ?><li><a href="<?php 
    the_permalink(); 
    ?>"><?php 
    the_title(); 
    ?></a></li><?php 
endforeach; 
?> 
+1

什麼在get_post()函數確實發生? –

+0

'the_permalink'和'the_title'函數是打印結果還是返回?此功能的來源將有所幫助 –

+0

爲什麼在$ cat和$ catHidden之前有' - '符號? –

回答

1

從抄本上的「post_not_in」參數:

多類別ID可以通過分離指定用逗號

類別ID所以,你想:

$myposts2 = get_posts(
    array(
     'post__not_in' => get_option('sticky_posts'), 
     'cat' => "-$cat,-$catHidden", 
     'showposts' => 5 
    ) 
); 
+0

Bingo!非常感謝亞當!我已經選擇了你的答案並且測試了它的完美效果。 –

0

兩個猜測:

  1. post__not_in看起來錯誤 - 它應該是一個雙下劃線?
  2. 假設這是WordPress的,我不能看到get_posts頁食品
1

'cat'=>-$cat,'cat'=>-$catHidden,對我來說看起來不對。將多個值分配給相同的變量?

1

我相信你可以修改它,像這樣的工作:

變化的片段:

'cat'=>-$cat,'cat'=>-$catHidden, 

到:

'category__not_in' => array($cat, $catHidden),