問題描述

我在一個具有搜索功能的網站上工作,允許用户搜索很多帖子元。有一個特定的搜索模式,我想強制返回沒有結果。 WP_Query 技術上會在數據庫中找到結果,但是我想以某種方式重寫,強制它不返回任何結果來觸發 if( $example->have_posts() )失敗。

有沒有一些可以傳遞給 WP_Query 的參數,如'force_no_results' => true,將強制它返回沒有結果?

最佳解決方案

嘗試

'post__in' => array(0)

簡單到點。

次佳解決方案

奇怪的是沒有乾淨/明確的方式來短路 WP_Query

如果是主要查詢,您可能會在 WP->parse_request()周圍工作,似乎有相對較近的 (3.5)do_parse_request 過濾器。

但是對於 WP_Query 本身骯髒的黑客通常是有序的,如 short-circuiting SQL 查詢通過 AND 1=0 通過 posts_where 過濾器等。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。