問題描述
我已經註冊了一個名為”node” 的自定義帖子類型。
當我創建一個基本的 WP_Query 來獲取該類型的帖子時,它的工作正常。例:
$args = array(
'post_status' => 'publish',
'post_type' => 'node');
$query = new WP_Query($args);
這將獲得”node” 類型的所有發表的帖子。
但是,一旦我將它與搜索結合起來,就不會返回任何東西。例:
$args = array(
'post_status' => 'publish',
'post_type' => 'node',
's' => 'My search term');
$query = new WP_Query($args);
這將不會得到任何東西,雖然它應該得到幾個類型’node’ 包含 「我的搜索字詞」 的帖子。
據我所知,只要在 $ args 中包含”s” 參數,就會自動將帖子類型設置為”post” 和”page” 。如果我打印出一個 $查詢的 var_dump,它顯示如下:
沒有”s”:
object(WP_Query)
public 'query' =>
array (size=2)
'post_status' => string 'publish' (length=7)
'post_type' => string 'node' (length=4)
public 'query_vars' =>
array (size=63)
'post_status' => string 'publish' (length=7)
'post_type' => string 'node' (length=4)
...
用”s”:
object(WP_Query)
public 'query' =>
array (size=2)
'post_status' => string 'publish' (length=7)
's' => string 'My search term' (length=14)
'post_type' => string 'node' (length=4)
public 'query_vars' =>
array (size=66)
'post_status' => string 'publish' (length=7)
's' => string 'My search term' (length=14)
'post_type' =>
array (size=2)
0 => string 'post' (length=4)
1 => string 'page' (length=4)
...
所以 WordPress 似乎在涉及到搜索時就會覆蓋帖子類型。
我該如何解決?
最佳解決辦法
你是對的,我在一個乾淨的 WordPress 安裝嘗試,它的工作原理。
似乎像我在環境中使用的插件之一是掛在自己的一個 pre-query 事件中。
謝謝!
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。