如何显示某个分类的列表模板?

时间:2014-04-07 作者:bestprogrammerintheworld

我想知道如何显示特定分类法的列表(categorycourses).

在里面functions.php 对于主题,我有:

//Register custom taxonomy for courses-categories
$course_cat_args = array(
  \'hierarchical\' => true,
  \'labels\' => $course_cat_labels, //Other labels set before
  \'show_ui\' => true,
  \'show_admin_column\' => true,
  \'query_var\' => true,
  \'rewrite\' => array( \'hierarchical\' => true )
);

register_taxonomy( \'categorycourses\', array(\'course\'), $course_cat_args );
实际的分类法在admin中运行良好。

现在,我正在尝试为创建一个模板categorycourses 在前端,列出所有课程类别。

我已经看过了template hierarchy 我想我应该创建一个具有分类名称的文件categorycourses.php

所以我创建了一个名为categorycourses.php 在主题文件夹中。我还尝试创建categorycourses-categorycourse.php, archive-categorycourses.php 但我一直收到一个404错误。

请和我一起裸体。我了解WP中的很多后端内容,但我只是在学习如何在前端创建模板。

我能够为某些帖子类型创建归档页面,因此重写规则等都在我的本地服务器上工作。

我做错了什么?

UPDATE1、我试图创建一个文件名taxonomy-categorycourses.php 同样的结果(404错误)是,我通过重新保存永久链接设置来刷新管理中的永久链接设置

我也尝试过:

$course_cat_args = array(
  \'hierarchical\' => true,
  \'labels\' => $course_cat_labels,
  \'show_ui\' => true,
  \'show_admin_column\' => true,
  \'query_var\' => true,
  \'rewrite\' => array(\'slug\' => \'soup\')
);

register_taxonomy( \'categorycourses\', array(\'course\'), $course_cat_args );
我尝试使用访问模板http://server/soup 但仍然得到错误。(在管理中重新保存永久链接设置后)

UPDATE2:*<我想我已经弄明白了:*似乎没有任何“根分类法”的模板。你必须选择一个特定的课程类别作为根。

就我而言,我创建了以下文件:

taxonomy-categorycourses-semester2014.php
当我访问http://server/soup/semester2014 预期模板(taxonomy-categorycourses-semester2014.php) 显示。

但似乎没有办法真正创建“分类法的根模板”,如http://server/soup/ . 即使我创建了一个名为taxonomy-categorycourses.php 它不起作用。

Is this correct?

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

如果没有page.php 模板类型。没有template hierarchy 支持您想要实现的目标。它对类别的作用完全相同。taxonomy-categorycourses.php 不会显示categorycourses, 我也会category-categorycourses.php 如果categorycourses 这属于正常范畴。如果您单击categorycourses, 您将进入一个页面,该页面将显示来自该分类法或类别的帖子。

如果需要在分类法下显示术语或类别的列表,则需要创建自定义page.php 模板和使用get_the_terms() 获取附加到分类法的所有术语/类别的列表。wp_list_categories( $args ) 将输出列表,因此您可以修改此列表以显示所需内容。你可以复制你的主题page.php 模板,并将其称为page-tax.php 您需要更改此模板中的循环。这是一个关于214主题的例子。

 <?php
/**
 * Template Name: Page Tax
 */
get_header(); ?>

<div id="main-content" class="main-content">

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

        <?php //list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin)

            $taxonomy     = \'brands\';
            $orderby      = \'name\'; 
            $show_count   = 0;      // 1 for yes, 0 for no
            $pad_counts   = 0;      // 1 for yes, 0 for no
            $hierarchical = 1;      // 1 for yes, 0 for no
            $title        = \'\';

            $args = array(
              \'taxonomy\'     => $taxonomy,
              \'orderby\'      => $orderby,
              \'show_count\'   => $show_count,
              \'pad_counts\'   => $pad_counts,
              \'hierarchical\' => $hierarchical,
              \'title_li\'     => $title
            );

        ?>

        <ul>
            <?php wp_list_categories( $args ); ?>
        </ul>

        </div><!-- #content -->
    </div><!-- #primary -->
    <?php get_sidebar( \'content\' ); ?>
</div><!-- #main-content -->

<?php
get_footer();
记住要改变$taxonomy = \'brands\'; 到您的分类名称。现在,您可以在“添加新页面”屏幕中创建新页面,将页面slug设置为分类名称,然后选择此模板。现在可以输入http://server/categorycourses/ 您将被定向到您创建的此页面。

Original Answer您提供的链接中的答案是正确的。《法典》完美地说明了这一点,你只需要正确地实施它。应调用您的模板taxonomy-categorycourses.php. 请参考您提供的链接

UPDATE1像打一堆砖头一样打我,不久前CPT也有同样的问题,当我看你的代码时,我错过了这个问题。要使自定义模板正常工作,您需要添加\'has_archive\' => true, 注册时的参数custom post type. 有关您的信息,请前往查看registering taxonomiesregistering custom post types

结束

相关推荐

Custom post types templates

我已经注册了一个名为“Services”的自定义帖子类型,但当我给这篇帖子提供模板“single Services.php”时,它不接受这个,而是选择了“homepage.php”模板,你能告诉我这个问题吗?它也没有使用“archive services.php”模板,而是使用blog模板(index.php)使现代化代码如下:add_action(\'init\', \'services_register\'); function services_register() { $