如果类别是“新闻”,如何有条件地在Single.php上隐藏作者姓名,否则,如果类别是其他内容,则显示作者姓名?

时间:2012-06-30 作者:Matt

我希望能够有条件地在单曲上隐藏作者的名字。php,如果类别名称等于“News”,否则如果类别是其他内容,则隐藏它。我该怎么做呢?我下面的代码似乎不起作用:

            <!-- header.php -->
        <?php get_header(); ?>
        <!-- /header.php -->

        <!-- 960 16 Column Grid -->
        <section class="container_16">

        <!-- Top Pagination -->
        <?php include(\'includes/top-pagination.php\'); ?>
        <!-- /Top Pagination -->

        <div class="clear"></div>

            <!-- Post -->
            <article class="grid_10 single-post-content margin-top-60">

                <!-- Post Loop -->
                <?php if (have_posts()) while (have_posts()) : the_post(); ?>

                    <!-- Clear -->
                    <div class="clear"></div>
                    <!-- /Clear -->

                    <!-- Post Title -->
                    <h1><?php the_title(); ?></h1>
                    <!-- /Post Title -->

                    <!-- Featured News Meta -->
                    <?php if(is_category(\'news\')) { ?>
                    <p class="featured-news-post-meta"><?php echo get_the_date(\'m.d.Y\'); ?></p>
                    <?php  } else { ?>
                    <p class="featured-news-post-meta">By <span class="featured-news-author"><?php echo get_the_author(); ?></span> / <?php echo get_the_date(\'m.d.Y\'); ?></p>
                    <?php } ?>
                    <!-- /Featured News Meta -->

                    <!-- Post Content -->
                    <?php the_content(); ?>
                    <!-- /Post Content -->

                    <?php //endif; ?>

                    <!-- Divider -->
                    <div class="separator"></div>
                    <!-- /Divider -->

                    <!-- Featured News Social Links -->
                    <?php include(\'includes/social.php\'); ?>
                    <!-- /Featured News Social Links -->

                    <!-- Comments -->
                    <?php //comments_template( \'\', true ); ?>
                    <!-- /Comments -->

                    <?php endwhile; ?>
                    <!-- /Post Loop -->

            </article>
            <!-- /Post -->

            <!-- What\'s Happening -->
            <div class="margin-top-60">
                <?php include(\'includes/whats-happening.inc.php\'); ?>
            </div>
            <!-- /What\'s Happening -->

        </section>
        <!-- /960 16 Column Grid -->

        <!-- sidebar.php -->
        <?php get_sidebar(); ?>
        <!-- /sidebar.php -->

        <!-- footer.php -->
        <?php get_footer(); ?>
        <!-- /footer.php -->

2 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

is_category 如果当前查看的页面是类别术语页面(即属于某个术语的帖子列表),则返回true,否则返回false。所以在里面single.php 它将始终返回false。

如果要检查循环中的当前帖子是否属于某个类别术语,则需要使用has_term().

例如:

 <?php if( has_term(\'news\',\'category\') ) { ?>
      <p class="featured-news-post-meta"><?php echo get_the_date(\'m.d.Y\'); ?></p>
 <?php  } else { ?>
      <p class="featured-news-post-meta">By <span class="featured-news-author"><?php echo get_the_author(); ?></span> / <?php echo get_the_date(\'m.d.Y\'); ?></p>
  <?php } ?>

SO网友:Milo

您正在使用is_category() 我相信你想要的地方in_category()

is_category() 在类别存档页上为true,in_category() 如果帖子属于特定类别或类别数组,则返回true。

EDIT in_category() 只是泛型的包装has_term(), 参见Stephen的答案。

结束

相关推荐

将筛选器添加到wp_Dropdown_Pages()或wp_Dropdown_Categories()-没有选择容器?

我在和wp_dropdown_pages() 和wp_dropdown_categories() 并且两者都始终输出<select>-盒子及其<option>s作为项目。有没有可能在这个函数中添加一个过滤器/挂钩,这样我就可以得到<option>s而不被包裹在<select>我这样问的原因是我想将页面和类别合并到一个下拉列表中。我找不到参数来设置这个!有什么想法吗?