flush_rewrite_rules() 函式用來刪除然後根據現有的條件重寫偽靜態規則,也就是重新整理一次偽靜態規則了。
通常在主題或者外掛新增新的自定義文章型別的時候呼叫,防止新的自定義文章型別的文章出現 404 的情況,這個問題參考:https://www.weixiaoduo.com/theme-activation-action/
另外要注意,更新偽靜態規則是非常消耗時間和效率的,所以不要每次執行程式碼都呼叫,只在必要的情況呼叫 (比如啟用主題和啟用外掛),把 flush_rewrite_rules() 掛到 init 鉤子上是極其不正確的。
用法
|
1 |
flush_rewrite_rules($hard); |
引數
$hard
(布林)(可選) 如果為 True 則一起重新整理 .htaccess 檔案 (hard flush);為 False 則只更新資料庫裡的偽靜態規則 (soft flush) 。
預設值:True(hard flush) 。
例子
在主題啟用的時候更新 (更多參考:https://www.weixiaoduo.com/theme-activation-action/) 偽靜態規則:
|
functionBing_theme_activation(){ if($GLOBALS['pagenow']!='themes.php'||!isset($_GET['activated']))return; flush_rewrite_rules(); } add_action('load-themes.php','Bing_theme_activation'); |
在外掛啟用的時候更新 (更多參考:https://www.weixiaoduo.com/register_activation_hook/) 偽靜態規則:
|
functionBing_myplugin_activate(){ flush_rewrite_rules(); } register_activation_hook(__FILE__,'Bing_myplugin_activate'); |
其它
此函式位於:wp-includes/rewrite.php