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学习教程之第2天
Jun 15 PHP
PHP 写文本日志实现代码
May 18 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
tp5框架无刷新分页实现方法分析
Sep 26 PHP
PHP7 弃用功能
Mar 09 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 array 的加法操作代码
2010/07/24 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
javascript正则表达式总结
2016/02/29 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
js实现密码强度检验
2017/01/15 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
深入研究React中setState源码
2017/11/17 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
通俗讲解python 装饰器
2020/09/07 Python
浅析Python 责任链设计模式
2020/09/11 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
大学生实习自我鉴定
2013/12/11 职场文书
鸿星尔克广告词
2014/03/21 职场文书
英文推荐信格式范文
2014/05/09 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
蓬莱阁导游词
2015/02/04 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书