タクソノミーの階層は3層構造になっています。
タクソノミーのターム名を英語表記させるためにカスタムフィールド(key:flower_name_en)を作成しました。
()内がカスタムフィールド の値です。
例)
花(flower)
- バラ(rose)
- バラ大(rose-large)
- バラ小(rose-small)
- カーネーション(carnation)
- カーネーション大(carnation-large)
- カーネーション小(carnation-small)
Aの投稿には、ターム:花、バラ、バラ小
Bの投稿には、ターム:花、カーネーション、カーネーション大
を紐付けました。
これをSQLを使って表示をさせたく、以下の記述をしました。
しかし、取得できたのは第一階層の「flower」のみが表示され、実際は、一番下位階層の「rose-small」のみを表示させたいと思っています。
どのような記述すればよいかわからずいき詰まっております。お力添えをいただけますと幸いです。
$the_post_id = $value->ID; //前記述で投稿IDを取得 $post_flower = " SELECT meta_value FROM $wpdb->termmeta AS termmeta INNER JOIN $wpdb->term_taxonomy term_taxonomy ON termmeta.term_id = term_taxonomy.term_id INNER JOIN $wpdb->term_relationships term_relationships ON term_taxonomy.term_taxonomy_id = term_relationships.term_taxonomy_id WHERE term_relationships.object_id = {$the_post_id} AND meta_key = 'flower_name_en' "; $flower = $wpdb->get_var($post_flower); echo $flower;
あなたの回答
tips
プレビュー