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ù)庫(kù)表單、跳轉(zhuǎn)到設(shè)置頁(yè)面等等,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' ) );//注意修改頁(yè)面地址 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ù)庫(kù)里的偽靜態(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分頁(yè)偽靜態(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)文章
自編函數(shù)解決pathinfo()函數(shù)處理中文問題
本文主要介紹了小編在使用pathinfo()函數(shù)處理中文文件名時(shí)遇到的一個(gè)小BUG的處理方式,有相同問題的童鞋們可以參考下2014-11-11php獲取、檢查類名、函數(shù)名、方法名的函數(shù)方法
這篇文章主要介紹了php獲取、檢查類名、函數(shù)名、方法名的函數(shù)方法,本文匯總介紹7個(gè)函數(shù)的作用和使用介紹,需要的朋友可以參考下2015-06-06封裝ThinkPHP的一個(gè)文件上傳方法實(shí)例
這篇文章主要介紹了封裝ThinkPHP的一個(gè)文件上傳方法,以實(shí)例的形式詳細(xì)講述了文件上傳類的實(shí)現(xiàn)以及具體功能講解,非常實(shí)用,需要的朋友可以參考下2014-10-10