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里面的抽象类
Jan 28 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
初品cakephp 入门基础
Feb 16 PHP
UCenter 批量添加用户的php代码
Jul 17 PHP
深入PHP autoload机制的详解
Jun 09 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
php函数连续调用实例分析
Jul 30 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
小程序实现录音功能
2020/09/22 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
深入解析Python中的urllib2模块
2015/11/13 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
三维科技面试题
2013/07/27 面试题
村级环境卫生整治方案
2014/05/04 职场文书
老兵退伍标语
2014/10/07 职场文书
公诉意见书范文
2015/06/05 职场文书
革命电影观后感
2015/06/18 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA