web-dev-qa-db-ja.com

WP 4.2の後、Get_termsが機能しなくなりました

私は自分のサイトでカスタム分類学用語がもはや出されていないことに気づいた。私はそれが4.2アップデート以降に起こったことを推測しているだけです。これが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++;
}

私は他の誰かにずっと前にこれを書いてもらいました、それで私はコードスニペットに関するすべての質問に答えを持っているとは限りません。

Get_terms関数が機能しなくなったのではないかと思います。以前は、このコードは問題なく動作し、ID 5の子を表示していました。まったく出力されません。ただ空白です。

どんなアイデアでも役に立ちます。ありがとう。

1
Mark.C

私は今これを直しました。私の昔の開発者と話をすることに成功し、彼はこれを追加しました:

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

14行目で以前に$ termsが使用されていた場所に、この新しい変数を追加する必要がありました。

みんなのおかげでありがとう、私は努力に感謝します。

1
Mark.C