2017-03-02 126 views
0

例如,我通過register_post_type()功能寄存器在我的主題後3型(或更多):如何獲得除屬於特定帖子類型Wordpress的帖子之外的所有帖子?

  • 議程
  • 下載
  • 產品

現在我想獲得的所有職位,不屬於Product帖子類型(帖子,頁面,議程,下載的所有帖子)。

我不想使用'post_type' => array('post','page','agenda','download')因爲也許我將來會註冊更多的帖子類型。

對於後期類型,沒有與'category__not_in'等效的參數嗎?

+0

顯示您的代碼?你到目前爲止嘗試了什麼?你使用WP_Query嗎? – yivi

+0

http://wordpress.stackexchange.com/questions/28084/exclude-category-from-get-posts – ashanrupasinghe

+0

@yivi現在我正在爲自動生成數據測試編寫插件。我在我的主題中使用ACF。在這種情況下,我必須檢測ACF顯示的帖子類型。我會嘗試下面的評論。謝謝。 –

回答

2

我不知道什麼嘗試是一個偉大的想法,但你可以做這樣的事情:

首先,你get all the existing post_types:

$post_types = get_post_types(['public' => true]); 

然後,從該數組中刪除文章類型你不想查詢:

$excluded_posttypes = ['product']; 
$post_types   = array_diff($post_types, $excluded_posttypes); 

然後你使用它作爲一個參數爲您的通話WP_Query:

'post_type' => $post_types, 
+0

謝謝。我會用這種方式嘗試。 –

+0

@Mít它工作嗎?請記住如果解決了您的問題,請接受答案。 :) – yivi

+0

啊是的,謝謝你的工作! –

0

也許你需要這樣:https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

有排除類別的一個例子,也許這可能是與崗位工種。

在情況下,它不可能與上面的鉤子,你可以嘗試構建您的查詢之前如下:

  1. 收集所有的文章類型在您的網站:https://codex.wordpress.org/Function_Reference/get_post_types
  2. ,把它們放進一個數組,所以你「馬上就能使用,在您的查詢的‘post_type’選項
  3. 刪除您想從陣列

排除這樣每個新重新職位類型查詢中將包含gistered的帖子類型。請注意,在get_post_types函數中也會返回默認的WP帖子類型'posts'。

+0

關於downvote的反饋,將不勝感激 – peird

+0

感謝您的答覆。你有第一個評論相同的想法,所以我會嘗試兩個^^ –

相關問題