GET_TERMS中的假布尔值出现Foreach错误

时间:2014-03-13 作者:campatsky

我正在获取一个页面ID数组,这些ID是在我经常使用的另一个函数中创建的,这很好。我遇到的问题在下面的函数中。某些页面尚未从兴趣分类中的选项中分配“兴趣”。因此,$terms数组在没有terms的页面中有一些假布尔值。当foreach遇到这些假布尔值时,屏幕上会出现一个php错误,尽管循环会继续运行,并以所有其他方式按预期工作。如何阻止出现此错误?我需要一些错误捕捉器来捕捉假布尔值,但不知道如何去做。非常感谢您的任何建议!

foreach ($campids as $campid){
            $terms = get_the_terms($campid, \'interests\');

            foreach($terms as $term){
                $camp_int = $term->name;

                if ($camp_int == $interest){ // include only camps with the correct location
                    $camps[$i][\'id\']=$campid;
                    $camps[$i][\'interest\']=$camp_int;
                }
            }
            $i++;
        }

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

你所需要的几乎是直接从抄本中获得的:

$terms = get_the_terms( $post->ID, \'on-draught\' );

if ( $terms && ! is_wp_error( $terms ) ) : 

    $draught_links = array();

    foreach ( $terms as $term ) {
        $draught_links[] = $term->name;
    }
get_the_terms() can return a term object, false, or a WP_Error object. 您正在检查false 也不是错误对象。这就是该条件的作用:

if ( $terms && ! is_wp_error( $terms ) ) 
使用它,而不是if(is_array($terms)){

结束

相关推荐

删除带重定向的Single-Custom.php上的链接

我需要在自定义帖子类型的单个页面上为我的用户提供删除链接。但是,当条目被删除时,用户将在此页面上出现“找不到任何内容”的wordpress错误(因为我们仍然在条目站点+/?deleted=1). 如何将用户重定向到网站上的其他页面?以下是我发布删除链接的方式:if ( !current_user_can( \'delete_bkroadkill\', $post->ID ) ) return; $onclick = \"onclic