lin3s/wp-routing

WordPress 的 Symfony 样式路由

v2.0.1 2016-08-11 09:30 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:04:10 UTC


README

WordPress 的 Symfony 样式路由。

SensioLabsInsight Build Status Scrutinizer Code Quality Total Downloads      Latest Stable Version Latest Unstable Version

为什么?

WordPress 路由系统是一个神奇、优秀但黑暗的系统。对于非开发者来说,这个路由系统“工作正常”,但当你需要自定义它时,这个过程并不直观。在 LIN3S,我们是一群热爱 Symfony 生态系统的 PHP 开发者,因此,这个库是一个简单但强大的方法,可以将 Symfony 路由组件轻松添加到你的 WordPress 项目中。

如果你想测试它,我们已经有了一个包含此库的、功能齐全的 WordPress 项目,WordPress 标准版 :)

安装

推荐和最合适的方式来安装这个库是通过 Composer。请确保该工具已安装在你的系统中,并执行以下命令

$ composer require lin3s/wp-routing

用法

在开始使用此库之前,我们强烈建议您熟悉 WordPress 模板层次结构

WP-Routing 使用 YAML 将路由与你的方法匹配。例如,你可以在你的 routing.yml 中编写以下内容

-
  controller: YourTheme\Controller\DefaultController::indexAction
  type: front

-
  controller: WordpressStandard\Controller\DefaultController::notFoundAction
  type: 404

-
  controller: YourTheme\Controller\EventController::searchAction
  type: search

-
  controller: YourTheme\Controller\YourPostTypeController::singleAction
  type: single
  posttype: your-posttype

-
  controller: YourTheme\Controller\PageController::availabilityAction
  type: page
  template: your-template

如上例所示,你可以为每个路由使用以下参数

  • controller: 定义当给定的路由匹配时将调用哪个方法。
  • type: 将匹配当前控制器的路由类型。它使用 WordPress 标准命名约定,你可以在 Router 类中查看可用的类型。
  • template:可以在页面中使用以选择自定义模板。内部使用get_page_template_slug()获取页面所需的模板。我们使用我们的模板选择器插件来让用户选择要使用的模板。
  • 其他参数:如果您需要针对特定的分类、文章类型(存档或单篇)、分类法或页面,可以使用额外的参数,如slug、id或posttype(请参阅WordPress模板层次结构页面上的变量名称)。

要解析上面添加的路由,只需在您的主题的index.php中包含以下代码

(new \LIN3S\WPRouting\Router())->resolve();

确保使用composer的自动加载脚本自动加载WPRouting库

待办事项

  • 添加更多规范
  • 使用XML注册路由
  • 使用注解注册路由

许可选项

License