我想知道如何显示特定分类法的列表(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
预期模板(t
axonomy-categorycourses-semester2014.php
) 显示。
但似乎没有办法真正创建“分类法的根模板”,如http://server/soup/
. 即使我创建了一个名为taxonomy-categorycourses.php
它不起作用。
Is this correct?
最合适的回答,由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 taxonomies 和registering custom post types