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 相关文章推荐
php 在线打包_支持子目录
Jun 28 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 PHP
Yii使用技巧大汇总
Dec 29 PHP
php简单获取复选框值的方法
May 11 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
php中访问修饰符的知识点总结
Jan 27 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 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中MD5函数使用实例代码
2008/06/07 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jquery获取input表单值的代码
2010/04/19 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
详解Django配置优化方法
2019/11/18 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
python speech模块的使用方法
2020/09/09 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
两年的个人工作自我评价
2014/01/10 职场文书
安全生产计划书
2014/05/04 职场文书
体操比赛口号
2014/06/10 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL