定制贴子类型插件打破首页显示仪表板?

时间:2013-07-15 作者:Mohit

我正在关注wp。tutsplus自定义帖子类型教程。在我将此代码添加到主插件文件之前,一切都很好

<?php add_filter( \'template_include\', \'include_template_function\', 1);?>

<?php function include_template_function(){
    if( get_post_type() == \'movie_reviews\' ){
        if( is_single() ){
            if( $theme_file = locate_template( \'single-movie-reviews.php\' ) ){
                $template_path = $theme_file;
            }
            else 
                $template_path = plugin_dir_path( __FILE__ ).\'single-movie-reviews.php\';
        }
    }
    return $template_path;
}
?> 
我仍然可以访问仪表板并创建新帖子,但首页是空白的。如果我删除此代码页,则加载时不会出现任何问题。

2 个回复
最合适的回答,由SO网友:Mike Madern 整理而成

解决页面模板未显示在模板下拉列表中的问题

在您的single-movie-reviews.php, 在文件顶部添加以下内容:

<?php
/*
Template Name: My Custom Page
*/
您更改的位置My Custom Page 输入您选择的模板名称。

看见This Codex page 有关自定义页面模板的详细信息。

SO网友:s_ha_dum

WordPress将加载一个名为single-movie-reviews.php automatically 对于单部电影评论(CPT命名movie-reviews) 立柱,或将加载archive-movie-reviews.php 用于存档列表。请参见Template Hierarchy 法典第页。

那个template_include 在我看来,过滤器正在(或试图)执行核心自动执行的操作。我不知道它的目的是什么。只需将该部分去掉,并对文件进行适当的命名,这样WordPress核心就可以完成它的工作。

结束