热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WordPress自定义路由URL和显示模板

以往我们需要创建一个特殊页面,我们都是新建一个Page单页,然后在主题目录里面新建一个Page模板,这样按照Wo

以往我们需要创建一个特殊页面,我们都是新建一个 Page 单页,然后在主题目录里面新建一个 Page 模板,这样按照 WordPress 的调用顺序就可以自定义展示方式,但是如果是开发插件,这样方式就不行了,所以我们得自定义路由 URL 和 显示模板才行。

function theme_functionality_urls() {
add_rewrite_rule('^test','index.php?test=1','top');
}

添加路由重写,每次修改完记得在 wp-admin 后台 设置 -> 固定链接 -> 保存 才能生效。

然后还要声明自定义的查询参数,不然无法获取参数的内容

add_action('query_vars', 'test_add_query_vars');
function test_add_query_vars($public_query_vars){
$public_query_vars[] = 'test';
return $public_query_vars;
}

所有非 WordPress 本身的查询参数,都需要使用上面的代码声明,不然 WordPress 会自动过滤掉。

最后是模板载入的规则,当检测到有我们自定义的参数的时候,就载入指定的模板

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 文件,当我们访问 domain/test 的时候,相当于在访问 domain?test=1 这个 URL,并且会把我们自定义的 template 展示出来。


推荐阅读
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • Laravel 开发技巧:如何为集合中的每个元素添加递增编号
    本文将介绍如何在 Laravel 集合中为每个数组元素添加递增的编号,帮助开发者更好地管理和操作数据。 ... [详细]
  • C语言中全部可用的数学函数有哪些?2.longlabs(longn);求长整型数的绝对值。3.doublefabs(doublex);求实数的绝对值。4.doublefloor(d ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 国联物流是一家由国家出资设立的国有企业,全称为湖南国联物流有限公司,成立于2001年3月,前身为株洲国联货运部。公司现办公地点位于湖南长沙,专注于大件运输、药品配送及第三方物流服务。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 本文介绍如何通过 Python 的 `unittest` 和 `functools` 模块封装一个依赖方法,用于管理测试用例之间的依赖关系。该方法能够确保在某个测试用例失败时,依赖于它的其他测试用例将被跳过。 ... [详细]
  • Flutter 开发中集成极光推送的详细步骤
    本文详细介绍了如何在 Flutter 项目中集成极光推送服务,包括配置和测试的具体步骤。 ... [详细]
author-avatar
花开不美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有