2017-06-28 13 views
0

私はすべての投稿とカスタム投稿タイプの投稿を1ページに表示するカスタムループを作成しました。WordPress Archive Loop - 投稿に応じてカテゴリまたはカスタムの投稿タイプ名を表示

投稿のカテゴリ、投稿タイプ「ケーススタディ」(投稿がどのセクションに属しているか)を表示することを検討しています。私のカスタムポストタイプ「ケーススタディ」にカテゴリはありません。

ここにコードが書き込まれる方法は、投稿のカテゴリを表示し、投稿がカスタム投稿タイプ「ケーススタディ」に属する場合は表示されません。カテゴリ名または投稿タイプ名のいずれかを表示するために条件文を設定するのに問題があります。

<?php $all_query = new WP_Query(array('post_type'=>array('post', 'case-study'),  
'post_status'=>'publish', 'posts_per_page'=>-1)); ?> 

<?php if ($all_query->have_posts()) : ?> 
<?php while ($all_query->have_posts()) : $all_query->the_post(); ?> 

<?php the_title()?> 
<?php the_category(', '); ?> 
<?php the_excerpt();?> 

<?php endwhile; ?> 
<?php wp_reset_postdata(); ?> 
<?php else : ?> 
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
<?php endif; ?> 

** EDIT 私はこのコードを追加した(the_categoryを交換するために)、私はそれがずさんで、より良い方法はおそらくあり実現。すべての入力またはポインタは非常に感謝しています!

<?php if (in_category('blog')) { ?> 
<?php the_category(', '); ?> 
<?php } elseif (in_category('pr')){ ?> 
<?php the_category(', '); ?> 
<?php } else { ?> 
<a href="<?php echo site_url(); ?>/case-studies">Case Study</a> 
<?php } ; ?> 

答えて

0

これはどうですか?私はget_post_type()がループ内の現在の投稿を使用すると思う。そうでなければ、その関数にIDまたはWP_Postオブジェクトのいずれかを渡す必要があります。

if(get_post_type() == 'post'){ 
    the_category(', '); 
}elseif(get_post_type() == 'case-study'){ 
    //your code 
} 
+0

ありがとうございました! – Logic

関連する問題