it-swarm.com.de

foreach error auf false boolean from get_terms

Ich greife nach einer Reihe von Seiten-IDs, die in einer anderen Funktion erstellt wurden, die ich regelmäßig verwende - das ist alles gut. Das Problem, das ich habe, ist in der folgenden Funktion. Auf einigen Seiten wurde aus den Optionen in der Zinstaxonomie kein "Zins" zugewiesen. Daher enthält das Array $ terms einige falsche Boolesche Werte von den Seiten ohne Ausdrücke. Wenn foreach auf diese falschen booleschen Werte stößt, wird auf dem Bildschirm ein PHP-Fehler angezeigt, obwohl die Schleife weiterhin ausgeführt wird und auf alle anderen Arten wie erwartet funktioniert. Wie kann ich verhindern, dass dieser Fehler angezeigt wird? Ich brauche eine Art Fehlerfänger für die falschen Booleschen, bin mir aber nicht sicher, wie ich das anstellen soll. Jeder Rat wird sehr geschätzt!

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++;
        }
3
campatsky

Was Sie brauchen, ist so ziemlich direkt aus dem Codex:

$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() kann ein Termobjekt, eine false oder ein WP_Error-Objekt zurückgeben. Sie überprüfen weder die false noch das Fehlerobjekt. Das macht diese Bedingung:

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

Verwenden Sie es anstelle von if(is_array($terms)){

2
s_ha_dum