亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
什么是 pre_get_posts?
如何正確使用 pre_get_posts?
基本結(jié)構(gòu)如下:
常見(jiàn)使用場(chǎng)景和示例
1. 修改首頁(yè)文章數(shù)量
2. 排除特定分類的文章
3. 修改歸檔頁(yè)的排序方式
注意事項(xiàng)和常見(jiàn)錯(cuò)誤
首頁(yè) CMS教程 &#&按 如何使用pre_get_posts

如何使用pre_get_posts

Jul 27, 2025 am 12:26 AM

pre_get_posts 是 WordPress 中用于在主查詢執(zhí)行前修改查詢參數(shù)的動(dòng)作鉤子,常用于調(diào)整首頁(yè)、分類頁(yè)或搜索頁(yè)的查詢邏輯。它允許開(kāi)發(fā)者在查詢尚未執(zhí)行時(shí)介入,提高效率。正確使用該鉤子需確保僅影響前臺(tái)和主循環(huán)查詢,基本結(jié)構(gòu)為通過(guò) add_action 添加自定義函數(shù),并在函數(shù)中使用 !is_admin() 和 $query->is_main_query() 進(jìn)行判斷。常見(jiàn)使用場(chǎng)景包括:1. 修改首頁(yè)文章數(shù)量,如設(shè)置每頁(yè)顯示 10 篇;2. 排除首頁(yè)中特定分類的文章,如 ID 為 3 和 5 的分類;3. 修改歸檔頁(yè)排序方式,如按標(biāo)題升序排列。注意事項(xiàng)包括避免影響非主查詢、保持邏輯簡(jiǎn)潔及測(cè)試時(shí)清空緩存以確保效果生效。

WordPress 的 pre_get_posts 鉤子非常實(shí)用,尤其當(dāng)你想在不修改主循環(huán)的情況下調(diào)整查詢結(jié)果時(shí)。它可以在查詢執(zhí)行前介入并修改參數(shù),常用于調(diào)整首頁(yè)、分類頁(yè)或搜索頁(yè)的查詢邏輯。


什么是 pre_get_posts?

pre_get_posts 是一個(gè)動(dòng)作鉤子(action hook),在 WordPress 構(gòu)建完主查詢之后、執(zhí)行數(shù)據(jù)庫(kù)查詢之前觸發(fā)。你可以通過(guò)它來(lái)修改查詢條件,而不是等查詢完成后再去處理結(jié)果,這樣效率更高。

比如你想讓某個(gè)分類頁(yè)面顯示更多文章,或者在首頁(yè)排除某些分類的文章,都可以用這個(gè)鉤子實(shí)現(xiàn)。


如何正確使用 pre_get_posts?

使用這個(gè)鉤子的關(guān)鍵在于判斷當(dāng)前查詢是否是你要修改的那個(gè),避免影響后臺(tái)或其他查詢。

基本結(jié)構(gòu)如下:

function custom_modify_query( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        // 在這里添加你的修改邏輯
    }
}
add_action( 'pre_get_posts', 'custom_modify_query' );
  • ! is_admin():確保只影響前臺(tái)頁(yè)面。
  • $query->is_main_query():確保只修改主循環(huán)的查詢,不影響小工具或其他自定義查詢。

常見(jiàn)使用場(chǎng)景和示例

1. 修改首頁(yè)文章數(shù)量

如果你想讓首頁(yè)每頁(yè)顯示 10 篇文章,而不是默認(rèn)的設(shè)置:

if ( $query->is_home() ) {
    $query->set( 'posts_per_page', 10 );
}

這比在“閱讀設(shè)置”里改全局設(shè)置更靈活,尤其是你有多個(gè)頁(yè)面需要不同設(shè)置的時(shí)候。

2. 排除特定分類的文章

如果你不想在首頁(yè)顯示某些分類的內(nèi)容,可以用 category__not_in 參數(shù):

if ( $query->is_home() ) {
    $query->set( 'category__not_in', array( 3, 5 ) ); // 排除 ID 為 3 和 5 的分類
}

注意這里的分類 ID 要根據(jù)你的實(shí)際情況填寫(xiě)。

3. 修改歸檔頁(yè)的排序方式

比如你想讓某個(gè)自定義文章類型的歸檔頁(yè)按標(biāo)題升序排列:

if ( $query->is_post_type_archive( 'book' ) ) {
    $query->set( 'orderby', 'title' );
    $query->set( 'order', 'ASC' );
}

適用于你需要統(tǒng)一某類內(nèi)容展示順序的情況。


注意事項(xiàng)和常見(jiàn)錯(cuò)誤

  • 不要忘記加 is_main_query() 判斷,否則可能影響側(cè)邊欄小工具或插件里的查詢。
  • 盡量避免在 pre_get_posts 中做太復(fù)雜的邏輯判斷,保持輕量。
  • 測(cè)試時(shí)建議先清空緩存,確??吹降氖亲钚滦Ч?/li>
  • 如果你用了緩存插件,某些更改可能不會(huì)立即生效,需手動(dòng)刷新緩存。

基本上就這些。掌握好 pre_get_posts 的使用方法,可以讓你在不改動(dòng)模板文件的前提下靈活控制文章列表的展示方式,是一個(gè)非常值得熟練使用的技巧。

以上是如何使用pre_get_posts的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

如何恢復(fù)WordPress核心更新 如何恢復(fù)WordPress核心更新 Jul 02, 2025 am 12:05 AM

要回滾WordPress版本,可使用插件或手動(dòng)替換核心文件,并禁用自動(dòng)更新。1.使用WPDowngrade等插件輸入目標(biāo)版本號(hào)即可自動(dòng)下載替換;2.手動(dòng)下載舊版WordPress并通過(guò)FTP替換wp-includes、wp-admin等文件但保留wp-config.php和wp-content;3.在wp-config.php中添加代碼或使用過(guò)濾器禁用核心自動(dòng)更新以防止再次升級(jí)。操作前務(wù)必備份網(wǎng)站和數(shù)據(jù)庫(kù),確保安全可靠。長(zhǎng)期建議保持最新版以保障安全性與功能支持。

如何在WordPress中創(chuàng)建自定義短代碼 如何在WordPress中創(chuàng)建自定義短代碼 Jul 02, 2025 am 12:21 AM

在WordPress中創(chuàng)建自定義短代碼的步驟如下:1.通過(guò)functions.php文件或自定義插件編寫(xiě)PHP函數(shù);2.使用add_shortcode()將函數(shù)綁定到短代碼標(biāo)簽;3.在函數(shù)中處理參數(shù)并返回輸出內(nèi)容。例如,創(chuàng)建按鈕短代碼時(shí)可定義顏色和鏈接參數(shù),實(shí)現(xiàn)靈活配置。使用時(shí)可在編輯器中插入類似[buttoncolor="red"url="https://example.com"]點(diǎn)擊這里[/button]的標(biāo)簽,并可通過(guò)do_shortcode()在模

如何診斷WordPress引起的高CPU使用 如何診斷WordPress引起的高CPU使用 Jul 06, 2025 am 12:08 AM

WordPress導(dǎo)致服務(wù)器CPU使用率飆升的主要原因包括插件問(wèn)題、數(shù)據(jù)庫(kù)查詢效率低、主題代碼質(zhì)量差或流量激增。1.首先通過(guò)top、htop或控制面板工具確認(rèn)是否為WordPress引起的高負(fù)載;2.進(jìn)入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況并刪除或替換低效插件;3.安裝緩存插件、清理冗余數(shù)據(jù)、分析慢查詢?nèi)罩疽詢?yōu)化數(shù)據(jù)庫(kù);4.檢查主題是否存在過(guò)度加載內(nèi)容、復(fù)雜查詢或缺乏緩存機(jī)制等問(wèn)題,建議用標(biāo)準(zhǔn)主題測(cè)試對(duì)比并優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位并解

如何在沒(méi)有插件的情況下優(yōu)化WordPress 如何在沒(méi)有插件的情況下優(yōu)化WordPress Jul 05, 2025 am 12:01 AM

優(yōu)化WordPress站點(diǎn)不依賴插件的方法包括:1.使用輕量級(jí)主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動(dòng)壓縮和合并CSS、JS文件,減少HTTP請(qǐng)求;3.上傳前優(yōu)化圖片,使用WebP格式并控制文件大?。?.配置.htaccess啟用瀏覽器緩存,并接入CDN提升靜態(tài)資源加載速度;5.限制文章修訂版本并定期清理數(shù)據(jù)庫(kù)冗余數(shù)據(jù)。

如何在WordPress中縮小JavaScript文件 如何在WordPress中縮小JavaScript文件 Jul 07, 2025 am 01:11 AM

MinifyingJavaScript文件可通過(guò)刪除空白、注釋和無(wú)用代碼來(lái)提升WordPress網(wǎng)站加載速度。1.使用支持合并壓縮的緩存插件如W3TotalCache,在“Minify”選項(xiàng)中啟用并選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細(xì)控制;3.手動(dòng)壓縮JS文件并通過(guò)FTP上傳,適用于熟悉開(kāi)發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能沖突,啟用后需徹底測(cè)試網(wǎng)站功能。

如何使用瞬態(tài)API進(jìn)行緩存 如何使用瞬態(tài)API進(jìn)行緩存 Jul 05, 2025 am 12:05 AM

TransientsAPI是WordPress中用于臨時(shí)存儲(chǔ)可自動(dòng)過(guò)期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設(shè)置生存時(shí)間(TTL),適合緩存API請(qǐng)求結(jié)果、復(fù)雜計(jì)算數(shù)據(jù)等場(chǎng)景。使用時(shí)需注意key命名唯一性與命名空間、緩存“懶刪除”機(jī)制及對(duì)象緩存環(huán)境下可能不持久的問(wèn)題。典型應(yīng)用場(chǎng)景包括減少外部請(qǐng)求頻率、控制代碼執(zhí)行節(jié)奏和提升頁(yè)面加載性能。

如何使用對(duì)象緩存進(jìn)行持續(xù)存儲(chǔ) 如何使用對(duì)象緩存進(jìn)行持續(xù)存儲(chǔ) Jul 03, 2025 am 12:23 AM

對(duì)象緩存可輔助持久存儲(chǔ),適用于高訪問(wèn)低更新、可容忍短暫丟失的數(shù)據(jù)。1.適合用緩存“持久化”的數(shù)據(jù)包括用戶配置、熱門商品信息等,能從數(shù)據(jù)庫(kù)恢復(fù)但使用緩存可加速訪問(wèn)。2.選擇Redis等支持持久化的緩存后端,啟用RDB或AOF模式,并配置合理過(guò)期策略,但不能替代主數(shù)據(jù)庫(kù)。3.設(shè)置長(zhǎng)TTL或永不過(guò)期鍵,采用清晰鍵名結(jié)構(gòu)如user:1001:profile,修改數(shù)據(jù)時(shí)同步更新緩存。4.可結(jié)合本地與分布式緩存,本地存小數(shù)據(jù)、Redis存大數(shù)據(jù)并用于重啟后恢復(fù),同時(shí)注意一致性與資源占用問(wèn)題。

如何使用插件檢查插件 如何使用插件檢查插件 Jul 04, 2025 am 01:02 AM

PluginCheck是一個(gè)幫助WordPress用戶快速檢查插件兼容性和性能的工具,主要用來(lái)識(shí)別當(dāng)前安裝的插件是否存在與最新版本W(wǎng)ordPress不兼容、存在安全漏洞等問(wèn)題。1.如何開(kāi)始檢查?安裝激活后,在后臺(tái)點(diǎn)擊“RunaScan”按鈕即可自動(dòng)掃描所有插件;2.報(bào)告包含插件名稱、檢測(cè)類型、問(wèn)題描述及解決方案建議,便于優(yōu)先處理嚴(yán)重問(wèn)題;3.建議在更新WordPress前、網(wǎng)站異常時(shí)或定期運(yùn)行檢查,提前發(fā)現(xiàn)隱患,避免未來(lái)出現(xiàn)重大問(wèn)題。

See all articles