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 中执行系统外部命令
Oct 09 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
又一个php 分页类实现代码
Dec 03 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
php UBB 解析实现代码
Nov 27 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 PHP
使用vs code编辑调试php配置的方法
Jan 29 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 imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
Python之reload流程实例代码解析
2018/01/29 Python
python数据封装json格式数据
2018/03/04 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
python中count函数简单用法
2020/01/05 Python
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
简单英文演讲稿
2014/01/01 职场文书
开业庆典策划方案
2014/02/18 职场文书
项目建议书范文
2014/05/12 职场文书
艾滋病宣传标语
2014/06/25 职场文书
推广活动策划方案
2014/08/23 职场文书
安装工程师岗位职责
2015/02/13 职场文书
2015年体育部工作总结
2015/04/02 职场文书
活动宣传稿范文
2015/07/23 职场文书
安全教育培训制度
2015/08/06 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS