一种方法是向挂钩中添加过滤器{$type}_template
.
示例代码:
function my_plugin_custom_template( $template, $type ) {
switch ( $type ) {
case \'page\':
$template = \'/path/to/custom-page-template\';
break;
case \'single\':
$template = \'/path/to/custom-single-template\';
break;
}
return $template;
}
add_filter( \'page_template\', \'my_plugin_custom_template\', 10, 2 ); // Filter for page.php
add_filter( \'single_template\', \'my_plugin_custom_template\', 10, 2 ); // Filter for single.php
或者您也可以将过滤器添加到挂钩
template_include
.
示例代码:
function my_plugin_custom_template2( $template ) {
if ( is_page() ) {
$template = \'/path/to/custom-page-template\';
}
elseif ( is_single() ) {
$template = \'/path/to/custom-single-template\';
}
return $template;
}
add_filter( \'template_include\', \'my_plugin_custom_template2\' );
由您决定过滤哪个钩子;然而
template_include
过滤器在
{$type}_template
钩如果你看看
my_plugin_custom_template()
代码,基本上不需要检查当前页面(即查询对象)是否是页面、帖子等。
希望这有帮助。