lin3s / wp-routing
WordPress 的 Symfony 样式路由
v2.0.1
2016-08-11 09:30 UTC
Requires
- php: ^5.5 || ^7.0
- symfony/yaml: ^2.3 || ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^1.11
- lin3s/wp-phpspec-brigde: ^0.1
- phpspec/phpspec: ^2.5
This package is not auto-updated.
Last update: 2024-09-14 18:04:10 UTC
README
WordPress 的 Symfony 样式路由。
为什么?
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注册路由
- 使用注解注册路由