Custom taxonomy page template

时间:2015-05-20 作者:user1452062

我第一次在写我自己的wordpress主题。我用自定义分类法注册了一个新的帖子类型,但我无法按术语显示帖子。我复制了档案。php并将其重命名为taxonomy-[mycustomtaxonomy]。php并修改了几行。

我保留了档案中的循环。php:

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

<?php the_content(); ?>

<?php endwhile; endif;  ?>
我的代码怎么了?如何创建类似页面的类别。php?

更新:自定义分类的选项

$rewrite = array(
        \'slug\'                       => \'mmcat\',
        \'with_front\'                 => true,
        \'hierarchical\'               => false,
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => false,
        \'show_tagcloud\'              => true,
        \'rewrite\'                    => $rewrite,
    );

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

问题在于exclude_from_search 注册帖子类型时的参数。

exclude\\u from\\u search(布尔)(重要性)是否从前端搜索结果中排除具有此帖子类型的帖子。

    Default: value of the opposite of public argument 

    \'true\' - site/?s=search-term will not include posts of this post type.
    \'false\' - site/?s=search-term will include posts of this post type.

Note: If you want to show the posts\'s list that are associated to taxonomy\'s terms, you must set exclude_from_search to false (ie : for call site_domaine/?taxonomy_slug=term_slug or site_domaine/taxonomy_slug/term_slug). If you set to true, on the taxonomy page (ex: taxonomy.php) WordPress will not find your posts and/or pagination will make 404 error...

SO网友:Kazi Ali Noor

您应该遵循模板的适当命名约定(又名模板层次结构)来完成工作。

如果我清楚您在这里的查询,那么我建议您将自定义分类法归档模板命名为"taxonomy-{your-taxonomy-name-here}.php" (即taxonomy-Vegeture.php、taxonomy-fruit.php等)

模板名称中的两个单词之间不得有空格或下划线。相反,您必须在单词之间写破折号/连字符。

但在您的自定义分类法归档页面正常运行之前,您应该在主题目录中再添加两个模板。

那些是"single-{your-custom-post-type-name}.php""content-{your-custom-post-type-name}-single.php" 如果您将自定义分类法用于自定义帖子类型,则它们分别遵循标准的“single.php”和“content single.php”。如果您有“market”类型,那么您的模板应该是“single-market.php”和“content-market-single.php”

在“single.php”中,您可能会看到<?php get_template_part( \'content\', \'single\' ); ?> 为了让它正常工作,您的主题目录中应该有“content single.php”模板。

对于自定义部分,您可以编写<?php get_template_part( \'content\', \'market-single\' ); ?> 并将特定于模板的代码放在“content-market-single.php”文件中。同样,为了使您的自定义分类法归档能够正常工作,您需要构建"taxonomy-shop.php""taxonomy-vegetable.php" 模板文件。

现在,您可以测试"content-market-single.php""taxonomy-shop.php" 只需将一些普通文本(如“hello/hi”)放在一个空白的白色页面上(保存并使用适当的模板名称命名),然后从导航菜单或WordPress仪表板到浏览器打开一个自定义帖子或自定义分类术语,即可正常工作。如果一切顺利,那么您可以继续模板构建过程。

您可能会发现以下文章非常有用,因为它与您的查询非常相关:http://www.smashingmagazine.com/2014/08/27/customizing-wordpress-archives-categories-terms-taxonomies/

结束

相关推荐

Loop for sticky posts

我用过Justin Tadlock\'s 关于如何创建仅包含粘性帖子的循环的教程。代码大致如下所示:$sticky = get_option( \'sticky_posts\' ); rsort( $sticky ); $sticky = array_slice( $sticky, 0, 2 ); query_posts( array( \'post__in\' => $sticky, \'caller_get_posts\' => 1 ) ); 根据教程,我