GET_TEMPLATE_PART导致500错误

时间:2018-03-09 作者:TheKidsWantDjent

我正在尝试在我目前正在使用的小部件中列出帖子。然而,当我在循环中使用get\\u template\\u part函数时,我的站点会一直加载,直到出现500 http错误。

    $args       = array(
        \'numberposts\'      => 10,
        \'orderby\'          => \'date\',
        \'order\'            => \'DESC\',
        \'post_type\'        => $postType,
        \'suppress_filters\' => true
    );
    $postsQuery = new WP_Query( $args );

    if ( $postsQuery->have_posts() ) {
        while ( $postsQuery->have_posts() ) {
            get_template_part( \'content/content\', $postType );
        }
        /* Restore original Post Data */
        wp_reset_postdata();
    }
当我评论get_template_part 出去,一切都很好。此外,该循环似乎可以完美地通过立柱循环。只是get_template_part 有点问题。我不知道我怎么才能找出问题所在。有什么想法吗?也许我用错了什么?

以下是解决方案:

我错过了$postsQuery->the_post() 在我的循环中。此外,guilemons提示也有所帮助,我需要一个名为content的文件夹,该文件夹位于我的php文件和模板所在的目录中。

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

这个get_template_part() 函数获取相对于调用它的文件的文件路径。您是否有一个名为“content”的文件夹,其中包含一个文件content-posttype.php? “content”文件夹是否与您调用的php文件位于同一文件夹中get_template_part() 在里面

此外,您还可以修改while循环,如下所示:

        while ( $postsQuery->have_posts() ) {
          $postsQuery->the_post();
          get_template_part( \'content/content\', $postType );//please check the file path.
        }

SO网友:Jacob Peattie

你失踪了$postsQuery->the_post() 在您的循环中。该函数将循环移动到下一个帖子,没有它,您将执行无限循环。

while ( $postsQuery->have_posts() ) {
    $postsQuery->the_post();
    get_template_part( \'content/content\', $postType );
}
get_template_part() 与问题无关。我对PHP的内部结构不太了解,所以不能肯定,但我怀疑当您对它进行注释时,它会起作用,因为没有执行一个没有任何内容的循环。

结束

相关推荐

Loop inside query

我有一个数组来存储分类法和查询术语,但我不能使用foreach在tax\\u查询中循环我的数组。我拿到了505内线。 $query = array( \'post_type\' => $post_type, \'posts_per_page\' => -1, ); $query[\'tax_query\'] = array( \'relation\' => \'OR\