具有自定义分类的自定义帖子模板

时间:2012-05-05 作者:Nikolay Dyankov

我正在开发的主题基本上是一个公文包,其中的项目是自定义的帖子类型,它们被划分为类别(自定义分类法)。以下是我如何定义这两者:

$labels = array(
    \'name\' => _x(\'My Portfolio\', \'post type general name\'),
    \'singular_name\' => _x(\'Portfolio Item\', \'post type singular name\'),
    \'add_new\' => _x(\'Add New\', \'portfolio item\'),
    \'add_new_item\' => _x(\'Add New Portfolio Item\', \'add new portfolio item\'),
    \'edit_item\' => _x(\'Edit Portfolio Item\', \'edit portfolio item\'),
    \'new_item\' => _x(\'New Portfolio Item\', \'new portfolio item\'),
    \'view_item\' => __(\'View Portfolio Item\'),
    \'search_items\' => __(\'Search Portfolio\'),
    \'not_found\' => __(\'Nothing found\'),
    \'not_found_in_trash\' => __(\'Nothing found in Trash\'),
    \'parent_item_colon\' => \'\'
);
$args = array(
    \'labels\' => $labels,
    \'public\' => true,
    \'publicly_queryable\' => true,
    \'show_ui\' => true,
    \'query_var\' => true,
    \'menu_icon\' => null,
    \'rewrite\' => true,
    \'capability_type\' => \'post\',
    \'hierarchical\' => false,
    \'menu_position\' => null,
    \'supports\' => array(null)
);
register_post_type(\'portfolio\', $args);

register_taxonomy(\'project_category\', array(\'portfolio\'), array(
    \'hierarchical\' => true,
    \'label\' => "Project Categories",
    \'singular_label\' => "Project Category",
    \'rewrite\' => true
));
所以在主页上我列出了所有的税收条款。“project\\u category”,我想要一个单一术语的模板文件(例如,“jQuery插件”或“WordPress主题”),在这里我可以列出所有使用该术语的项目。

我查看了WP模板层次结构,我认为我需要的模板是

taxonomy-$taxonomy.php
我的文件名为taxonomy-project\\u category。php,但它找不到它。我还尝试了分类法。php,术语。php,存档。php。。。没有成功。我认为问题在于链接:

<a href="<?php echo $term->slug; ?>"><?php echo $term->name; ?></a>
有什么想法吗?干杯

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

从OPs的回答来看,问题似乎与模板无关,而是使用了错误的url。

要获取分类术语的链接,可以使用get_term_link():

  <a href="<?php echo get_term_link($term,\'product_category\')?>"><?php echo $term->name; ?></a>

SO网友:Wyck

分类法模板支持taxonomy-{taxonomy}-{slug}.php 您是否尝试过:

taxonomy-project_category-jquery-plugins.php  
// for the term Jquery Plugins, please alter to actually match what your term slug is
该名称格式看起来有点奇怪,您可能需要考虑使用project-category 相反

同时打开debugging 并安装调试栏。

SO网友:Nikolay Dyankov

我自己找到了解决方案,我正在发布这篇文章,以防有人发现这个问题。

问题出在链接中,它应该是这样的:

<a href="<?php echo get_bloginfo(\'url\') . \'/project_category/\' . $term->slug; ?>"><?php echo $term->name; ?></a>

结束

相关推荐

Enable page templates. How?

基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。