WordPress中用于更新偽靜態(tài)規(guī)則的PHP代碼實例講解
flush_rewrite_rules() 函數(shù)用來刪除然后根據(jù)現(xiàn)有的條件重寫偽靜態(tài)規(guī)則,也就是刷新一次偽靜態(tài)規(guī)則了。
先來說一下,通常在主題或者插件添加新的自定義文章類型的時候調用,防止新的自定義文章類型的文章出現(xiàn) 404 的情況,或者很多時候我們都需要在主題啟用的時候執(zhí)行一些代碼,比如布置一些數(shù)據(jù)庫表單、跳轉到設置頁面等等,WordPress 本身并沒有提供相關的鉤子,網上也有很多五花八門的實現(xiàn)方法,經過我的研究,發(fā)現(xiàn)了可能是最優(yōu)的方法,下邊分享給大家:
/**
*WordPress 在主題啟用的時候執(zhí)行一些代碼
*http://www.endskin.com/theme-activation-action/
*/
function Bing_theme_activation(){
if( $GLOBALS['pagenow'] != 'themes.php' || !isset( $_GET['activated'] ) ) return;
/*
這里就可以放置在主題啟用的時候要執(zhí)行的代碼了,比如跳轉到設置界面:
wp_redirect( admin_url( 'options-general.php' ) );//注意修改頁面地址
die;
*/
}
add_action( 'load-themes.php', 'Bing_theme_activation' );
此代碼放在主題和插件里都是有效的。
另外要注意,更新偽靜態(tài)規(guī)則是非常消耗時間和效率的,所以不要每次執(zhí)行代碼都調用,只在必要的情況調用(比如啟用主題和啟用插件),把 flush_rewrite_rules() 掛到 init 鉤子上是極其不正確的。
用法
flush_rewrite_rules( $hard );
參數(shù)
$hard
(布爾)(可選)如果為 True 則一起刷新 .htaccess 文件(hard flush);為 False 則只更新數(shù)據(jù)庫里的偽靜態(tài)規(guī)則(soft flush)。
默認值:True(hard flush)。
例子
在主題啟用的時候更新偽靜態(tài)規(guī)則:
function Bing_theme_activation(){
if( $GLOBALS['pagenow'] != 'themes.php' || !isset( $_GET['activated'] ) ) return;
flush_rewrite_rules();
}
add_action( 'load-themes.php', 'Bing_theme_activation' );
在插件啟用的時候更新偽靜態(tài)規(guī)則:
function Bing_myplugin_activate(){
flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'Bing_myplugin_activate' );
其它
此函數(shù)位于:wp-includes/rewrite.php
相關文章
tp5(thinkPHP5)框架實現(xiàn)多數(shù)據(jù)庫查詢的方法
這篇文章主要介紹了tp5(thinkPHP5)框架實現(xiàn)多數(shù)據(jù)庫查詢的方法,結合實例形式分析了thinkPHP5框架多數(shù)據(jù)庫查詢的相關配置、初始化及調用相關操作技巧,需要的朋友可以參考下2019-01-01
PHP利用超級全局變量$_POST來接收表單數(shù)據(jù)的實例
下面小編就為大家?guī)硪黄狿HP利用超級全局變量$_POST來接收表單數(shù)據(jù)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
使用PHP?MySQL實現(xiàn)數(shù)據(jù)量小的內容推薦方法
這篇文章主要為大家介紹了使用PHP?MySQL實現(xiàn)數(shù)據(jù)量小的內容推薦方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
PHP結合Mysql數(shù)據(jù)庫實現(xiàn)留言板功能
這篇文章主要介紹了PHP結合Mysql數(shù)據(jù)庫實現(xiàn)留言板功能的相關資料,需要的朋友可以參考下2016-03-03
Apache啟動報錯No space left on device: AH00023該怎么解決
最近有朋友說:Apache啟動報錯No space left on device: AH00023,是怎么回事,該怎么解決呢?經過小編的一番折騰,問題解決,下面把解決辦法分享給大家,需要的朋友可以參考下2015-10-10
PHP使用SOAP調用.net的WebService數(shù)據(jù)
需要和一個.net系統(tǒng)進行數(shù)據(jù)交換,對方提供了一個WebService接口,使用PHP如何調用這個數(shù)據(jù)呢,下面就看看使用SOAP調用的方法吧2013-11-11

