2013-08-30 20 views
0

如何隱藏某些類別中來自我網站主頁的某些ID的帖子?我需要像過濾器一樣的解決方案:WordPress主頁上的過濾郵件

function exclude_post($query) { 
    if ($query->is_home) { 
     ... 
    } 

    return $query; 
} 

add_filter('pre_get_posts', 'exclude_post'); 

有人可以提供一個例子嗎?

回答

3

使用$query->set($query_var, $value);其中$ query_var是要在查詢中添加/更新的變量。所以把這個你的病情裏面:

// 1st parameter is the query variable the 2nd is its value, in this case an array of category IDs 
$query->set('category__not_in', array(2, 6)); 

記住是很好的做法放在條件的檢查$query->is_main_query()pre_get_posts是一個動作鉤子,因此您必須將add_filter更改爲add_action。 一個動作鉤子不會返回一個值,一個過濾器會做。

function exclude_post($query) { 
    if ($query->is_home() && $query->is_main_query()) { 
     $query->set('category__not_in', array(2, 6)); 
    } 
} 

add_action('pre_get_posts', 'exclude_post'); 

UPDATE

根據新的細節對這個問題不斷出現,爲了排除一些職位提要流,而不是在類別檔案,有條件的檢查可能看起來像:

if($query->is_feed() && !$query->is_archive()) 

if($query->is_feed() && !$query->is_category()) 

希望它有幫助!

+0

我又需要你的幫助,我修改了功能建議,現在我需要從RSS提要刪除相同的帖子,我添加條件'if($ query-> is_home || $ query-> is_feed)'在主頁是好的,但不是在飼料,我看到飼料 –

+1

@ DmytroZarezenko所有帖子,嘗試只有'is_feed()'沒有其他參數和'$ query - > *',看看發生什麼事情 – iEmanuele

+0

當我只使用'is_feed'時,我看到主頁和RSS中不需要的帖子,我mea n不工作( –

-1

您可以使用簡單的排除在查詢參數: -

<?php wp_list_categories('orderby=name&show_count=1&exclude=10'); ?> 

它的唯一樣本,怎麼給你排除。

滾開,工作..

+0

不好意思,但是wp_list_categories();函數可以隱藏或顯示一些帖子?該功能將類別列表顯示爲鏈接,並且不用於獲取|檢索帖子 – iEmanuele

+0

我在說它的一個樣本,你可以使用排除在後期查詢..朋友 –

0

您還可以使用下面的方法來排除後查詢類別

<?php 
if (is_home()) 
{ 
query_posts($query_string . '&cat=-3'); 
} 
?>