0

カスタム分類の 1 つの用語に分類されたすべての投稿のリストを作成しようとしています。

「証言カテゴリ」のカスタム分類で「証言」と呼ばれるカスタム投稿タイプを作成しました。推薦のカテゴリで、「同僚」と「クライアント」という用語を作成しました。あまりにもアーカイブ ページを作成しようとしています。1 つは同僚の下のすべての投稿を一覧表示し、もう 1 つはクライアントの下のすべての投稿を一覧表示します。アーカイブ ページ taxonomy-testimonial_categories-clients.php と taxonomy-testimonial_categories-colleagues.php を作成しました。また、cpt の証言の下にあるすべての投稿のリストを作成できますが、同僚やクライアントという用語でフィルターすることはできません。

wordpress.org で調査した結果、新しい WP_Query で tax_query を使用することが最善の方法であると考えています。これが私が今取り組んでいるコードです。

 <?php           

 $args = array(
'post_type' => 'testimonial',
'tax_query' => array(
    array(
        'taxonomy' => 'testimonial_categories',
        'field' => 'slug',
        'terms' => 'colleagues'
    )
)
);

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();    ?>
<span class="frame small alignleft">                 
            <?php the_post_thumbnail(thumbnail); ?>   
            <span>                                           
          <div class="test-content">                                                                                    
        <?php the_content(); ?>                                         
            </div>   
<?php endwhile; ?>
4

1 に答える 1

0

ここでは手遅れですが、私にとってはうまくいった唯一の解決策ですが、

$my_taxonomy_name = "your taxo. name";
$my_term_name = "your term name";
$my_term_id = -1;

$terms = get_terms($my_taxonomy_name);

if(count($terms)>0){
     foreach ($terms as $term) {
       if($term->name == $my_term_name){
           $term_id=$term->term_id;
           continue;
       }        
     }
$my_posts = array();
$postids_in_term = get_objects_in_term($term_id,'ad_setting'); 
foreach($postids_in_term as $post_id){
    array_push($my_posts,get_post($post_id));
}

var_dump($my_posts);
}

これは決してエレガントではありませんが、動作します!

于 2013-08-05T13:05:00.837 に答える