wordpress自定义url参数实现路由功能的代码示例


Posted in PHP onNovember 28, 2013

经过两天的正则表达式的学习,和研究wordpress的路由函数,成功实现了自定义wordpress路由功能,以下是路由规则的实现。
如果有自定义的url参数,要通过路由传递,必须通过wordpress的函数将参数添加进去:

//add query_args
function add_query_vars($aVars) {
    $aVars[] = 'score';
    $aVars[] = 'type'; // represents the name of the product category as shown in the URL
    return $aVars;
}
add_filter('query_vars', 'add_query_vars');//wordpress过滤器

同时在获取参数的页面也要用到wordpress的函数获取:

$type=isset($wp_query->query_vars['type'])?urldecode($wp_query->query_vars['type']):'';
//路由规则-根据时间排序以及各类别的最新条目
function add_rewrite_rules($aRules) {
    $aNewRules = array(
        'text/([^latest][^/]+)/?(/page/([0-9]+)?)?/?$' => 'index.php?cat=2&score=$matches[1]&paged=$matches[3]',
        'image/([^latest][^/]+)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=3&score=$matches[1]&paged=$matches[3]',
        'video/([^latest][^/]+)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=4&score=$matches[1]&paged=$matches[3]',
        'resource/([^latest][^/]+)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=5&score=$matches[1]&paged=$matches[3]',
        'text/(latest)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=2&type=$matches[1]&paged=$matches[3]',
        'image/(latest)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=3&type=$matches[1]&paged=$matches[3]',
        'video/(latest)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=4&type=$matches[1]&paged=$matches[3]',
        'resource/(latest)/?$'=>'index.php?cat=5&type=$matches[1]',
        '(month)/?(/page/([0-9]+)?)?/?$'=>'index.php?score=$matches[1]&paged=$matches[3]',
        '(24hr)/?(/page/([0-9]+)?)?/?$'=>'index.php?score=$matches[1]&paged=$matches[3]',
    );
    $aRules = $aNewRules + $aRules;
    return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
//路由规则-类别
add_rewrite_rule('^text/?(/page/([0-9]+)?)?/?$','index.php?cat=2&paged=$matches[2]','top'); //对应的类别ID
add_rewrite_rule('^image/?(/page/([0-9]+)?)?/?$','index.php?cat=3&paged=$matches[2]','top');
add_rewrite_rule('^video/?(/page/([0-9]+)?)?/?$','index.php?cat=4&paged=$matches[2]','top'); 
add_rewrite_rule('^resource/?(/page/([0-9]+)?)?/?$','index.php?cat=5&paged=$matches[2]','top');
PHP 相关文章推荐
PHP中显示格式化的用户输入
Oct 09 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php GUID生成函数和类
Mar 10 PHP
php利用header函数下载各种文件
Aug 24 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
PHP常见数组排序方法小结
Aug 20 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
PHP变量内存分配问题记录整理
Nov 27 #PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 #PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 #PHP
php编写的简单页面跳转功能实现代码
Nov 27 #PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 #PHP
XAMPP安装与使用方法详细解析
Nov 27 #PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 #PHP
You might like
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
初识php MVC
2014/09/10 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
Vue项目中如何引入icon图标
2018/03/28 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
python将字母转化为数字实例方法
2019/10/04 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
文秘专业个人求职信
2013/12/22 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
节水口号标语
2014/06/19 职场文书
工程技术员岗位职责
2015/04/11 职场文书
班级班风口号大全
2015/12/25 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS