检索分类时出现的阿帕奇错误

时间:2020-10-09 作者:SNCooke

我经常在分类单页时看到Apache错误。php正在引入与帖子相关的类别:

PHP Warning: array_values() expects parameter 1 to be array, bool given in /wp-content/themes/my-theme/inc/category-single-page.php on line 4
这是php文件的前几行(编号仅供参考的行,而不是实际文件中的行)

<?php while ( have_posts() ) : the_post(); ?>
<?php
    $thiscategory = get_the_terms( $post->ID, $taxonomy_name );
    $thiscategory = array_values( $thiscategory );  // This is line 4
    $section = get_post_type( $post->ID );
    $thispost = $post->ID;
?>
php文件似乎不会在调用时始终生成错误,所以我认为我的代码是可以的(我可能错了!)那么,有没有想过是什么导致Apache偶尔记录错误,或者是我的代码出了问题?

1 个回复
SO网友:Pat J

这是一个PHP错误,而不是Apache错误。

发生的事情是get_the_terms() 返回术语数组,或false 如果没有条款或帖子不存在。

您可以这样修复此问题:

$thiscategory = get_the_terms( $post->ID, $taxonomy_name );
if ( is_array( $thiscategory ) ) {
    // Only runs if $thiscategory is an array.
    $thiscategory = array_values( $thiscategory );  // This is line 4
}
$section = get_post_type( $post->ID );
$thispost = $post->ID;