wpfulcrum/template

Fulcrum 模板模块 - 为您的插件加载模板提供动力。

3.0.1 2017-12-22 15:02 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:29:24 UTC


README

Build Status Latest Stable Version License

为您的 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 种方法可以利用此模块

  1. 与完整的 Fulcrum 插件 一起使用。
  2. 或者在没有 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'),
);

贡献

所有反馈、错误报告和拉取请求都欢迎。