为foreach错误提供无效参数


Invalid argument supplied for foreach Error

我经常处理数组或null变量的数据,并为这些数据提供一些foreach

// TV shows categories
$tvcats = get_the_terms($post->ID, 'tvshows_cat');
foreach($tvcats as $tvcat) $tvcats_arr[] = $tvcat->name;
if (count($tvcats_arr) > 1) $tvcats_str = $tvcats_arr[0] . '<br />' .  $tvcats_arr[1]; // return first 2 terms
elseif (count($tvcats_arr) == 1) $tvcats_str = $tvcats_arr[0]; // return one term
else $tvcats_str = '';

if (!empty($tvcats_str)){   
echo $tvcats_str;   
} 

tvshows_cat是一个自定义分类法,它的工作原理类似于类别,(我的意思是它是第二个类别列表)。

在这段代码中,我想将terms限制为2。它工作了,但是我得到了一个错误。

那么我怎么解决这个问题呢?

您可以尝试这样做:

$tvcats = get_the_terms($post->ID, 'tvshows_cat');
if (isset($tvcats) && !is_wp_error($tvcats)) {
    foreach($tvcats as $tvcat) {
       $tvcats_arr[] = $tvcat->name;
       if (count($tvcats_arr) > 1) $tvcats_str = $tvcats_arr[0] . '<br />' . $tvcats_arr[1]; // return first 2 terms
       elseif (count($tvcats_arr) == 1) 
           $tvcats_str = $tvcats_arr[0]; // return one term
       else 
           $tvcats_str = '';
    }
}