WordPress中用于更新伪静态规则的PHP代码实例讲解


Posted in PHP onDecember 18, 2015

flush_rewrite_rules() 函数用来删除然后根据现有的条件重写伪静态规则,也就是刷新一次伪静态规则了。

先来说一下,通常在主题或者插件添加新的自定义文章类型的时候调用,防止新的自定义文章类型的文章出现 404 的情况,或者很多时候我们都需要在主题启用的时候执行一些代码,比如布置一些数据库表单、跳转到设置页面等等,WordPress 本身并没有提供相关的钩子,网上也有很多五花八门的实现方法,经过我的研究,发现了可能是最优的方法,下边分享给大家:

/**
  *WordPress 在主题启用的时候执行一些代码
  *http://www.endskin.com/theme-activation-action/
*/
function Bing_theme_activation(){
  if( $GLOBALS['pagenow'] != 'themes.php' || !isset( $_GET['activated'] ) ) return;
  /*
  这里就可以放置在主题启用的时候要执行的代码了,比如跳转到设置界面:
  wp_redirect( admin_url( 'options-general.php' ) );//注意修改页面地址
  die;
  */
}
add_action( 'load-themes.php', 'Bing_theme_activation' );

此代码放在主题和插件里都是有效的。

另外要注意,更新伪静态规则是非常消耗时间和效率的,所以不要每次执行代码都调用,只在必要的情况调用(比如启用主题和启用插件),把 flush_rewrite_rules() 挂到 init 钩子上是极其不正确的。

用法

flush_rewrite_rules( $hard );

参数

$hard

(布尔)(可选)如果为 True 则一起刷新 .htaccess 文件(hard flush);为 False 则只更新数据库里的伪静态规则(soft flush)。

默认值:True(hard flush)。

例子

在主题启用的时候更新伪静态规则:

function Bing_theme_activation(){
  if( $GLOBALS['pagenow'] != 'themes.php' || !isset( $_GET['activated'] ) ) return;
  flush_rewrite_rules();
}
add_action( 'load-themes.php', 'Bing_theme_activation' );

在插件启用的时候更新伪静态规则:

function Bing_myplugin_activate(){
  flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'Bing_myplugin_activate' );

其它

此函数位于:wp-includes/rewrite.php

PHP 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
PHP生成月历代码
Jun 14 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
PHP工程师VIM配置分享
Dec 15 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
php操作access数据库的方法详解
Feb 22 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 #PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 #PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 #PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 #PHP
PHP封装的字符串加密解密函数
Dec 18 #PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 #PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 #PHP
You might like
php error_log 函数的使用
2009/04/13 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
python实现的文件夹清理程序分享
2014/11/22 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
python编写分类决策树的代码
2017/12/21 Python
python调用API实现智能回复机器人
2018/04/10 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
python实现ID3决策树算法
2018/08/29 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
Python-opencv 双线性插值实例
2020/01/17 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
商铺门面租房协议书
2014/10/21 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers