wordpress 自定义路由及展示页
来源:互联网 发布:大连磐海数据有限公司 编辑:程序博客网 时间:2024/06/11 05:01
背景:
我想实现一个特殊的响应,流程如下:访问domain/test,响应一个表单页面,填写并提交表单页面后,wordpress进行响应(wordpress处理ajax请求)。
key point 1、怎么注册domain/test这个路由(add_rewrite_rule())?
key point 2、怎么响应domain/test这个请求(template_redirect)?
实现过程:
首先,wordpress 有重写url的方法,叫 add_rewrite_rule()。在function.php中加入如下代码段:
// 添加路由重写,每次修改完记得在wp-admin后台“设置”-》“固定链接”=》“保存”才能生效add_action('init', 'theme_functionality_urls');function theme_functionality_urls() { add_rewrite_rule('^test','index.php?test=1','top');}这段代码的意思就是把domain?test=1改写成domain/test,top意思是把这个规则放到最前面。
此时,当你访问domain/test跟访问domain?test=1的效果是一样的。
但是,我们原本也没有对domain?test=1这样的请求进行响应。所以1、当请求domain?test=1的时候,我们怎么获取到这个test的值?2、怎么对这个请求进行响应?
add_action('query_vars', 'test_add_query_vars');function test_add_query_vars($public_query_vars){ $public_query_vars[] = 'test'; return $public_query_vars;}这段代码的意思是在执行到query_vars这个钩子的时候,给$public_query_vars数组里面添加一个test字段,这个test字段就是当访问domain?test=1的时候的test的字段。当添加test到$public_query_vars之后,会检查每个请求url里是否包含test字段。
//模板载入规则 add_action("template_redirect", 'test_template_redirect');function test_template_redirect(){ global $wp; global $wp_query; $reditect_page = $wp_query->query_vars['test']; if ($reditect_page == "1"){ include(TEMPLATEPATH.'/test/test.php'); die(); } }
这段代码的意思是这样的,首先,这个TEMPLATEPATH是你的主题路径,连着/test/test.php相当于在你的主题目录下新建了一个test目录,test目录里有一个test.php文件。
所有的请求都会走这个方法,但是,唯独请求url中包含test字段并且test的值为1的时候会转至我们新建的/test/test.php页面。然后die()掉。
至此,当我们访问domain/test的时候,相当于在访问domain?test=1这个url,并且会把我们自定义的template展示出来。
我在这个test.php中写了一个表单,通过ajax请求打到wordpress后台进行处理,具体可以参考《wordpress处理ajax请求》。
参考:
http://www.ashuwp.com/courses/highgrade/318.html
https://www.iteblog.com/archives/1988.html
- wordpress 自定义路由及展示页
- 完美实现WordPress自定义增加删除个人资料并且展示文章页
- wordpress自定义url参数实现路由功能的代码示例
- 简单隐藏php,及自定义路由
- vue中的路由及自定义图标
- 实现wordpress路由功能
- 路由的效果展示
- wordpress作品展示主题:Salient
- angular使用NG ZORRO来构建博客展示项目(项目结构及路由)
- liferay中自定义字段及部分路由说明
- mvc3 路由学习 自定义路由
- wordpress自定义搜索
- wordpress 自定义 widgets
- 自定义Wordpress的仪表盘
- 自定义 WordPress 样式
- WordPress:自定义页面模板
- wordpress自定义分类页面
- wordpress建立自定义菜单
- CSS进阶:提高你前端水平的 4 个技巧
- struts2笔记Action实现的三种使用方式和路径通配符
- UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接
- Qml动态语言切换
- Linux命令
- wordpress 自定义路由及展示页
- h标签和p标签和hr标签
- 前端面试笔试题
- Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法
- 2.2线性表的顺序表示和实现(1)
- Hibernate主键生成策略总结
- 图解TCP/IP读书笔记(二)
- 人工智能时代需要怎样的设计师
- WinDbg学习笔记十一