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

