問題描述

目前我有三個在 pre_get_posts 上執行的功能。我叫他們這樣:

add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );

這使我能夠保持功能整齊和獨立,但是呼叫相同的動作三次,而不是呼叫組合功能一次,資源流失?

最佳解決方案

我想你的意思是

add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );

add_action( 'pre_get_posts', 'combined_into_single_callback' );

您可以使用例如 memory_get_usage()timer_stop()。許多很好的外掛可以幫助你。

我會說第一個,因為他們似乎是無關的回撥,可能更容易維護。

我希望主要依賴於您在那裡執行的回撥函式:private_groups()search_results()name_profiles()combined_into_single_callback()

鉤子設定本身不應該是資源耗盡,因為它只是全域性陣列中的三個新的額外元素。

當使用 pre_get_posts 時,您應該注意的是僅將目標物件為對應的 WP_Query 例項,並避免為所有例項執行昂貴的程式碼塊。

參考文獻

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