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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
yii添删改查实例
Nov 16 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
angularjs基础教程
2014/12/25 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
Python File(文件) 方法整理
2019/02/18 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
世界红十字日活动总结
2015/02/10 职场文书
校长个人总结
2015/03/03 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python