WordPress存档循环 - 显示类别或自定义帖子类型名称,具体取决于帖子

时间:2017-06-28 17:59:07

标签: php wordpress

我制作了一个自定义循环,在一个页面上显示所有帖子和自定义帖子类型的帖子。

我希望在标题下显示帖子的类别,或帖子类型"案例研究",具体取决于帖子属于哪个部分。我的自定义帖子类型"案例研究"。

中没有类别

这里编写代码的方式,它将显示帖子的类别,如果帖子属于自定义帖子类型,则会显示任何内容"案例研究"。我在设置条件语句时无法显示类别名称或帖子类型名称。

<?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; ?>

**编辑 我已添加此代码(以替换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 } ; ?>

1 个答案:

答案 0 :(得分:0)

这个怎么样?我认为get_post_type()将使用循环中的当前帖子。如果不是,则需要将ID或WP_Post对象传递给该函数。

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