tax_queryでterm_taxonomy_idを使うと記事を取得できない
-
カスタム投稿タイプの個別ページにおいて、その記事に含まれるカスタムタクソノミーのタームと同じタームを持つ記事のタイトルとパーマリンクをリスト表示しようとしています。
single-custompost.php(カスタム投稿タイプの個別ページテンプレート)
//表示させる部分 //引き数に記事ID <?php my_post_title_list($post->ID); ?>
functions.php
function my_post_title_list( $id = 0 ){ //my_taxonomy:タクソノミー名 $terms = get_the_terms( $id, 'my_taxonomy' ); //タクソノミーを持っていなければ何も表示しない if ( ! $terms )return ''; //my_taxonomyは、記事に対してタームは1つしか持たない前提なので、配列の先頭の要素を取得 $term = array_shift($terms); $posts_array = get_posts( array( 'post_type' => 'custompost', 'numberposts' => -1, 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'my_taxonomy', 'field' => 'term_taxonomy_id', 'terms' => $term->term_taxonomy_id ) ) )); }
対象の記事には同じmy_taxonomyのタームを持つ記事がこの記事を含めて2つあるので、$posts_arrayにはその2つの記事データが入るはずなのですが、このコードだと、中身が空(Array())になってしまいます。
ところが、tax_queryのfieldをslug、termsを$term->slug、またはfieldをterm_id、termsを$term-> term_id、にすると、正しく記事が取得できます。上記の記事を参考にさせていただきまして、
可能であるなら、field に term_taxonomy_id を指定すると、データベースへのクエリーが条件毎に1つ軽減でき、負荷を軽減できます。
とあったので、term_taxonomy_idを使用したいと思ったのですが、取得できない原因がわからないでいます。
解決法を教えて頂ければ幸いです。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「tax_queryでterm_taxonomy_idを使うと記事を取得できない」には新たに返信することはできません。