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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
PHP程序员基本要求和必备技能
May 09 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
twig模板常用语句实例小结
Feb 04 PHP
CI框架整合smarty步骤详解
May 19 PHP
示例详解Laravel的注册重构
Aug 14 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 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多种序列化与反序列化的方法
2013/06/06 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
如何手写简易的 Vue Router
2020/10/10 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
关于Python作用域自学总结
2019/06/10 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
水利公司纪检监察自我鉴定
2014/02/25 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
留学推荐信范文
2014/05/10 职场文书
学校欢迎标语
2014/06/18 职场文书
小学教师党员承诺书
2015/04/27 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android