你可以随时设置WP_USE_THEMES
到false
, 并自行处理所有模板/显示逻辑。(但是,这需要访问用户wp config或index来设置常量,这超出了插件的范围,尽管您可以将其作为安装要求)。
查看template-loader.php 您可以从一个起点来了解需要重新实现的逻辑类型。
或者,您可以让用户选择一个主题作为插件未涵盖的所有情况的后备方案,并充分利用template_include
在某些情况下选择插件提供的模板。
直接从codex:
add_filter( \'template_include\', \'portfolio_page_template\', 99 );
function portfolio_page_template( $template ) {
if ( is_page( \'portfolio\' ) ) {
$new_template = locate_template( array( \'portfolio-page-template.php\' ) );
if ( \'\' != $new_template ) {
return $new_template ;
}
}
return $template;
}
乍一看,我认为第二种方法更合理,但即便如此,我还是会在将主题与插件分离方面做更多的工作,以便在将来为自己和用户提供更大的灵活性。