web-dev-qa-db-fra.com

Get_terms a cessé de fonctionner après WP 4.2

Je viens de remarquer sur mon site que les termes de taxonomie personnalisés ne sont plus en vente. Je suppose seulement que c'est arrivé depuis la mise à jour 4.2. Voici le php:

$terms = get_the_terms( $post->ID , 'bw_filters' );
$genres = get_terms( 'bw_filters' , array( 'child_of' => 5   ) );
$terms_ids = array();
$genres_ids = array();
$output_terms = array();
foreach( $terms as $term ){
    $terms_ids[ $term->term_id ] = $term->term_id;
}
foreach( $genres as $term ){
    $genres_ids[ $term->term_id ] = $term->term_id;
}
foreach( $terms_ids as $term ){
    if( in_array( $term , $genres_ids ) ){
        $output_terms[] = $terms[ $term ];
    }
}

$count = count( $output_terms );
$i = 1;
foreach( $output_terms as $term ){
    echo $term->name;
    if( $i < $count ){
        echo ', ';
    }
    $i++;
}

J'ai demandé à quelqu'un d'autre d'écrire cela il y a longtemps, de sorte que je n'ai peut-être pas de réponse à toutes les questions concernant l'extrait de code.

Je suppose que c'est la fonction get_terms qui ne fonctionne plus comme il se doit. Auparavant, ce code fonctionnait bien et affichait les enfants de l'ID 5. Il ne génère rien du tout. Juste vide.

Toutes les idées sont utiles. Merci.

1
Mark.C

J'ai résolu ce problème maintenant. J'ai réussi à parler avec mon ancien développeur et il a ajouté ceci:

$termsById = array();
foreach ($terms as $t) {
    $termsById[$t->term_id] = $t;
}

J'ai dû ajouter cette nouvelle variable où $ terms était précédemment utilisé à la ligne 14.

Merci pour votre aide à tous, j'apprécie l'effort.

1
Mark.C