我是WordPress新手,最近一直在學習很多關於pre_get_posts的知識。我理解這個基本概念,但是在文檔的一部分中被絆倒了。你可以在主查詢之外使用pre_get_posts嗎?
從codex:
「同樣,如果在模板文件(例如,archive.php)使用pre_get_posts將無法正常工作,因爲查詢完成後,他們被稱爲」
如果你不能在模板文件中使用它,這是否意味着它只對index.php有用?如果是這樣的話,爲什麼pre_get_posts被用來改變存檔顯示方式的頁面還有一個例子呢?
我明白pre_get_posts的功能(特別是query_posts),但我很難在一個站點上多次使用它。我看到的所有內容都顯示它僅用於主循環。
任何指導,非常感謝。
非常感謝您的回覆,我非常感謝。我唯一的後續問題是:如果pre_get_posts是爲主查詢而設的, – Travis
非常感謝您的回覆,我非常感謝。在我看來,我在WP上開發的大部分內容都會有一個主要查詢,然後幾乎所有其他頁面請求都會傳遞到模板文件,我可以像使用WP_Query()那樣使用實例。有沒有一種場景可以在同一個網站上多次使用pre_get_posts?再次感謝您的幫助,我試着加快響應速度,但我還沒有足夠的聲譽來註冊。 – Travis
這真的讓我想到了,我想我需要咖啡......如果你想影響每一種頁面請求的主要查詢,你必須在你的'functions.php'文件中加入帶有回調函數的'add_action',這實際上適用於例如'archive.php','category.php'和所有的子模板文件,如'category-category-a.php'。你可以在'functions.php'中創建不同的回調函數,就像'is_category()',然後'add_action('pre_get_posts','my_category_callback_function')',但不止一次調用它是多餘的,因爲它隻影響一個查詢,主要查詢。 – Joachim