如何删除/替换当前页面模板?

时间:2013-08-17 作者:Radek

我正在编写一个插件,它从头开始创建新的首页/主页。下面的代码工作得很好,它在主题输出任何内容之前输出文本。因此,问题是如何删除创建html代码的主题?

基本上,我希望plug-I从空白主页开始,而不考虑当前活动的任何主题。

  add_action(\'wp_head\', \'new_front_page\');
    function new_front_page(){
     if (is_front_page()){
       echo \'is_front_page():\'.is_front_page();
     }
    }
  }
我正在测试wp 3.6和2013。

当然,欢迎任何人提出更好的建议。

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

如果要替换主题主页,则不能使用wp_head 钩子:它是从主题文件(通常是header.php)调用的,所以您不能替换已经包含的内容。

我建议您创建一个包含自定义主页的php文件,并将其放在插件文件夹中。此文件,例如“my\\u custom\\u home\\u page”。php’必须为页面创建整个html。

你不能像这样使用函数get_headerget_footer 因为这个函数包含主题模板文件。。。

下面的代码只是一个起点。使用它,插件文件“my\\u custom\\u home\\u page”。当需要首页时,会包含“php”。

之后return 您必须放置自定义主页文件的完整路径。如果代码位于主插件文件和“my\\u custom\\u home\\u”页面中,则我使用的代码可以正常工作。php’位于同一文件夹中。如果您有不同的文件夹结构或代码在其他地方,请根据它更改路径。

add_filter( \'template_include\', \'my_replace_home_page\' );

function my_replace_home_page( $template ) {
  if ( is_front_page() ) {
    return plugin_dir_path( __FILE__ ) . \'my_custom_home_page.php\';
  }
  return $template;
}

结束