类别列表(存档)按类别列出的页面模板

时间:2012-08-13 作者:Keefer

我觉得这可能是一个重复的问题,但无法找到搜索词来找到我正在寻找的内容。

是否可以根据帖子的类别设置不同的类别列表(存档)页面(或视图/模板)?

我正在一个将博客作为顶级类别的网站上工作,但我希望我的其他“页面”只是其他顶级帖子类别,每个类别都有一个自定义的类别列表/归档页面外观。

示例:转到/类别/博客输出默认类别。php输出,列出所有最近的博客帖子(按照博客的顶级类别分类,或者是博客的子类别)

“前往/分类/工作”列出了所有最近的工作条目(按照“工作”的顶级分类和所有子类别进行分类)

这可能吗?

编辑:以下是我的分类方式。php页面设置(显然,此“自定义”模板基于二十个模板。此时,我是否可以修改get_template_part(\'loop\', \'category\'); 参与工作if语句以指向不同于“循环”的内容

<?php
/**
 * The template for displaying Category Archive pages.
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */

if (is_category(\'blog\')) :
    $GLOBALS[\'pagetype\'] = \'blog\';
endif;

if (is_category(\'work\')) :
    $GLOBALS[\'pagetype\'] = \'work\';
endif;

get_header(); ?>

        <div id="container">

            <!-- OUTPUT FOR BLOG CATEGORY LIST PAGE -->
            <?php if (is_category(\'blog\')) : ?>
                <div id="content" class="blogList" role="main">
                    <?php
                        $category_description = category_description();
                        if ( ! empty( $category_description ) )
                            echo \'<div class="archive-meta">\' . $category_description . \'</div>\';

                    /* Run the loop for the category page to output the posts.
                     * If you want to overload this in a child theme then include a file
                     * called loop-category.php and that will be used instead.
                     */
                    get_template_part( \'loop\', \'category\' );
                    ?>

                    <div class="triangle"></div>

                </div><!-- #content -->
            <?php endif; ?>
            <!-- /OUTPUT FOR BLOG CATEGORY LIST PAGE -->



            <!-- OUTPUT FOR WORK CATEGORY LIST PAGE -->
            <?php if (is_category(\'work\')) : ?>
            <div id="content" class="blogList" role="main">
                <?php
                $category_description = category_description();
                if ( ! empty( $category_description ) )
                    echo \'<div class="archive-meta">\' . $category_description . \'</div>\';

                /* Run the loop for the category page to output the posts.
                                     * If you want to overload this in a child theme then include a file
                                     * called loop-category.php and that will be used instead.
                                     */
                get_template_part( \'loop\', \'category\' );
                ?>

                <div class="triangle"></div>

            </div><!-- #content -->
            <?php endif; ?>
            <!-- /OUTPUT FOR WORK CATEGORY LIST PAGE -->




        </div><!-- #container -->

<!--Default sidebar only for Blog postings-->
<?php if (is_category(\'blog\')) :
    get_sidebar();
endif;
?>
<?php get_footer(); ?>

1 个回复
最合适的回答,由SO网友:amit 整理而成

可以创建名为category-foo.php 这将仅适用于具有slug的类别foo. 因此,您可以为不同类别创建自定义模板。

Source - Codex page for Category template

注意-

如果要进行一些小的更改,如显示foo 在类别1中,以及bar 另一方面,最好是单身category.php 和使用is_category 条件标记。

更新-您可以使用get_template_part( $slug, $name ) 对不同类别使用不同循环的步骤-

<?php 
if (is_category(\'foo\')) {
    get_template_part( \'cat\', \'foo\' );  // It\'ll load    cat-foo.php
} else (is_category(\'bar\')) {
    get_template_part( \'cat\', \'bar\' );  //   cat-bar.php
} else { 
    //
}
?>

结束

相关推荐

回显QUERY_POSTS中的数值

我正在为我的一个wordpress主题创建一个选项页,我试图要求用户输入“要显示的帖子数”—我正在使用“query\\u posts”显示帖子这是我修改的代码,但它不起作用<?php query_posts(\"posts_per_page=\'\".of_get_option(\'numberofposts\', \'3\' ).\"\'&cat=\'\".of_get_option(\'postcategory\', \'no entry\' ).\"\'\"); while(have_