如何创建可以显示该分类的帖子列表的分类档案

时间:2014-10-01 03:01:14

标签: php wordpress custom-taxonomy

我正在创建可以使用自定义分类法(如类别)的wordpress模板。我希望每次点击帖子的类别时,它都会显示该类别的帖子列表。这是我的category.php。

<?php get_header(); ?>
<body>
<div id="container">
    <div id="header"><h1><a href="<?php echo get_option('home'); ?>"><?php bloginfo('name'); ?></a></h1></div>
    <div id="menu"><?php wp_nav_menu( array( 'sort_column' => 'menu_order', 'menu_class' => 'nav', 'theme_location' => 'primary-menu' ) ); ?></div>
    <div id="content">
        <div id="blog">
        <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
            <?php /* If this is a category archive */ if (is_category()) { ?>
                <h2>Archive for the &#8216;<?php single_cat_title(); ?>&#8217; Category:</h2>
            <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
                <h2>Posts Tagged &#8216;<?php single_tag_title(); ?>&#8217;</h2>
            <?php /* If this is a daily archive */ } elseif (is_day()) { ?>
                <h2>Archive for <?php the_time('F jS, Y'); ?>:</h2>
            <?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
                <h2>Archive for <?php the_time('F, Y'); ?>:</h2>
            <?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
                <h2>Archive for <?php the_time('Y'); ?>:</h2>
            <?php /* If this is an author archive */ } elseif (is_author()) { ?>
                <h2>Author Archive</h2>
            <?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
                <h2>Blog Archives</h2>
        <?php } ?>

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

        <div class="post">
        <br>
        <br>
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>

            <div class="entry">
            <br>    
                <?php the_content(); ?>

                <p class="postmetadata">
                <?php _e('Filed under&#58;'); ?> <?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
                <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
                </p>

            </div>
            <br>
            <hr>
            <br>
        </div>

        <?php endwhile; ?>

        <div class="navigation">
        <?php posts_nav_link(); ?>
        </div>

        <?php endif; ?>
    </div>
    </div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

我已经整天搜索,没有任何工作。我应该使用什么自定义分类模板存档名称?我必须在这个category.php中改变哪些代码来满足显示自定义分类法档案的需要(可以显示与点击的分类法相关的所有帖子)?

2 个答案:

答案 0 :(得分:1)

您应该为属于自定义分类的术语创建taxonomy.php。您只需复制上面的模板并将其命名为taxonomy.php

即可

修改

在注册两个分类法时,你有一个重大的根本缺陷。

不能在自定义分类名称中包含空格,这也适用于函数名称和自定义帖子类型名称。以下规则适用,并且没有解决这些问题。

  • 名称不能包含空格或任何特殊字符。

  • 只允许使用小写字母

  • 如果一个名称包含多个单词,您可以使用下划线(_)来分隔它们。不要使用连字符(-),因为稍后您会遇到问题

  • 有关分类和帖子类型的字符数限制,请参阅codex

因此,简而言之,kategori beritatag berita是无效的名称。它们应为kategori_beritatag_berita。正如我所说,没有解决这个问题。您唯一的解决方案是相应地更改分类名称

答案 1 :(得分:1)

当您的分类法的名称是&#34; roles&#34;时,您可以创建一个名为taxonomy-roles.php的文件。您可以使用术语(在此示例中为&#34; ceo&#34;)进行扩展,如下所示:taxonomy-roles-ceo.php。

正如@pietergoosen所说,你可以复制粘贴你在这些文件中提供的代码。

有关详细信息,请查看以下链接:http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display