为什么WP TEMPLATE_INCLUDE覆盖所有模板,而不是指定的页面?

时间:2017-09-18 作者:codacopia

我已经为WP创建了一个自定义插件,该插件有一个包含模板的操作,通过template_include 如图所示:

public function __construct( $wp_custom_plugin, $version ) {

    $this->wp_custom_plugin = $wp_custom_plugin;
    $this->version = $version;

    add_action(\'template_include\', array( $this, \'add_my_template\' ));    

}
以下是引用模板的函数:

public function add_my_template($template){
  if ( is_page( \'my-unique-page\' ) ) {
      $template = plugin_dir_path( __FILE__ ) . \'page-my-unique-page.php\' ;
      return $template;
    }
  }
}
好的,我的期望是,我只能在my-site.com/my-unique-page. 在实践中,我没有看到这种限制,而是模板应用于整个站点。关于如何修改以将显示限制为单个页面,有什么建议吗?谢谢

1 个回复
SO网友:codacopia

感谢@WebElaine的评论。我需要将模板return移到函数外部,使其如下所示:

public function add_my_template($template){
  if ( is_page( \'my-unique-page\' ) ) {
    $template = plugin_dir_path( __FILE__ ) . \'page-my-unique-page.php\' ;
  }
  return $template;
}

结束

相关推荐

EDIT-Comments.php COMMENT_ROW_ACTIONS AJAX问题

在编辑注释上。php页面,我正在连接到comment\\u row\\u actions过滤器,以便在末尾添加另一个链接。我正在复制“Approve”链接,添加另一个查询键和值,并修改锚文本。我想根据新查询键的值添加一些注释元。批准的链接:/wp-admin/comment.php?c=9999&action=approvecomment&_wpnonce=8526c66已批准的元链接/wp-admin/comment.php?c=9999&action=approvecommen