oberonlai / wp-template
在插件中注册和渲染模板。
Requires
- php: >=7.2
README
一个简单的类,允许从插件注册WordPress任何模板。包括页面模板、自定义文章类型模板和WooCommerce模板。
安装
$ composer require oberonlai/wp-template
用法
首先,使用插件目录路径和模板文件夹初始化类。例如,如果您将模板文件放在名为“templates”的文件夹中,您可以分配路径。
use ODS\Template;
$template = new Template( plugin_dir_path( __FILE__ ) . 'templates/' );
不要忘记文件夹路径中的最后一个斜杠。
添加页面模板
页面模板是可以在页面编辑器中重复使用的模板。您可以使用add_page()
来分配页面模板。add_page()
有两个参数
- $file - 页面模板文件名
- $name - 可读的模板名称
use ODS\Template;
$template = new Template( plugin_dir_path( __FILE__ ) . 'templates/' );
$template->add_page( 'template-demo.php', 'my-template' );
添加页面别名模板。
页面别名模板是与相同别名名称的模板。如果您页面的别名名称是'demo',则可以使用page-demo.php
模板。有两个参数
- $file 页面模板文件名
- $slug 匹配的页面别名
use ODS\Template;
$template = new Template( plugin_dir_path( __FILE__ ) . 'templates/' );
$template->add_page_slug( 'page-test.php', 'test' );
添加自定义文章类型模板
自定义文章类型模板包括单个页面和存档页面。您可以使用add_post()
方法分配模板文件。有三个参数
- $file 页面模板文件名
- $type 自定义文章类型名称
- $position 模板位置可选单页、存档
use ODS\Template;
$template = new Template( plugin_dir_path( __FILE__ ) . 'templates/' );
$template->add_post( 'single-book.php', 'book', 'single' );
$template->add_post( 'archive-book.php', 'book', 'archive' );
覆盖WordPress模板
WordPress模板包含多个过滤器以覆盖。
https://developer.wordpress.org/reference/hooks/type_template/
您可以使用add_wp()
方法分配模板文件。有三个参数
- $file 页面模板文件名
- $position 模板位置
use ODS\Template;
$template = new Template( plugin_dir_path( __FILE__ ) . 'templates/' );
$template->add_wp( 'author.php', 'author' );
$template->add_wp( '404.php', '404' );
覆盖WooCommerce模板
WooCommerce模板有自己的层次结构。您需要做的就是将您需要的WooCommerce模板文件复制到插件中的模板文件夹。
您可以使用add_woocommerce()
方法更改WooCommerce的默认模板路径。如果您的插件在模板/woocommerce路径中没有与WooCommerce模板同名的模板,它将获取原始模板文件。
例如,如果您在yourplugin/templates/woocommerce/checkout
中有一个form-checkout.php
文件,wp-template将替换它。
use ODS\Template;
$template = new Template( plugin_dir_path( __FILE__ ) . 'templates/' );
$template->add_woocommerce();
致谢
add_page()
方法改编自http://www.wpexplorer.com/wordpress-page-templates-plugin/