wpfulcrum / template
Fulcrum 模板模块 - 为您的插件加载模板提供动力。
3.0.1
2017-12-22 15:02 UTC
Requires
- php: ^5.6|^7
- wpfulcrum/config: ^3
- wpfulcrum/extender: ^3
- wpfulcrum/foundation: ^3
Requires (Dev)
- brain/monkey: ^2.0
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.8|~5.7.9
- sensiolabs/security-checker: ^4.0
- squizlabs/php_codesniffer: ^3.0
This package is not auto-updated.
Last update: 2024-09-29 05:29:24 UTC
README
为您的 WordPress 插件加载模板提供动力。
您的插件是否创建了一个自定义文章类型或分类?或者您可能想将页面模板添加到页面的模板选择器中?Fulcrum 模板模块使这变得容易。
特性
- 主题覆盖 - 如果模板在主题中存在,它将加载该模板而不是插件。
- 从您的插件加载单个、文章类型存档和分类模板。
- 将您的自定义模板加载到管理员的页面模板选择器中,允许作者选择并将模板分配给页面。
- 如果正在加载的页面已分配了模板,则在可用时将加载插件的模板。
安装
使用此组件的最佳方式是通过 Composer。
composer require wpfulcrum/template
依赖项
此模块需要
- 至少 PHP 5.6
- WordPress 4.8+
配置
有两种类型的加载器,每种加载器都需要在您的插件中配置一个单独的配置文件。
- 模板加载器 - 用于前端
- 管理页面模板加载器 - 用于后端
模板加载器配置
以下示例针对的是具有“Genre”分类的自定义文章类型“Book”。
<?php
return [
'autoload' => true,
'config' => [
'templateFolderPath' => __DIR__ . '/path/to/the/templates/',
'postType' => 'book',
'useSingle' => true,
'useArchive' => true,
'useTax' => true,
'taxonomy' => 'genre',
'usePageTemplates' => true, // set to false when there are no custom page templates.
],
];
上述配置告诉模块,当需要时,此插件具有以下模板文件应被加载。
single-book.php
archive-book.php
taxonomy-genre.php
- 以及页面模板,将在下面进行配置。
管理(后端)模板加载器
当您的插件需要将自定义页面模板加载到后端时,请使用以下配置示例。
<?php
return [
'autoload' => true,
'config' => [
'usePageTemplates' => true,
'templates' => [
'template-books.php' => __("Book Entry Template"),
],
],
];
上述配置告诉模块,插件具有以下模板可供页面使用。
template-books.php
会发生什么?
当作者在后端管理区域打开页面时,“Book Entry Template”将作为页面模板可供选择。如果选择了该模板,则在浏览器(前端)渲染该页面时将加载插件的模板文件。
使其工作
有 2 种方法可以利用此模块
- 与完整的 Fulcrum 插件 一起使用。
- 或者在没有 Fulcrum 的情况下独立使用。
使用 Fulcrum
在 Fulcrum 中,您的插件是一个插件。在您的插件配置文件中,您将有一个参数为 serviceProviders
,其中列出您想要使用的每个服务提供商。在这种情况下,您将使用 provider.template
用于前端加载和 provider.adminTemplate
用于后端管理加载。
例如,使用我们上面的配置,这将是这样配置的
'serviceProviders' => [
'template.book' => [
'provider' => 'provider.template',
'config' => __DIR__ . '/template/book-genre.php',
],
'adminTemplate.books' => [
'provider' => 'provider.adminTemplate',
'config' => __DIR__ . '/template/page-templates.php',
],
],
没有 Fulcrum
在没有 Fulcrum 的情况下,您需要实例化每个加载器。
对于前端模板加载器,您将执行以下操作
TemplateLoader(
ConfigFactory::create('/path/to/config/template/book-genre.php'),
);
对于后端管理模板加载器,您将执行以下操作
AdminTemplate(
ConfigFactory::create('/path/to/config/template/page-templates.php'),
);
贡献
所有反馈、错误报告和拉取请求都欢迎。