我能做一个也有主题的超级插件吗?

时间:2016-01-16 作者:1.21 gigawatts

我正在做一些需要用户有插件的事情。我只想让他们安装一件东西。我可以有一个有主题的插件吗?

1 个回复
SO网友:yivi

你可以随时设置WP_USE_THEMESfalse, 并自行处理所有模板/显示逻辑。(但是,这需要访问用户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;
}
乍一看,我认为第二种方法更合理,但即便如此,我还是会在将主题与插件分离方面做更多的工作,以便在将来为自己和用户提供更大的灵活性。