【问题标题】:How to display post with two custom taxonomy in wordpress如何在 wordpress 中显示具有两个自定义分类的帖子
【发布时间】:2017-10-27 15:04:17
【问题描述】:

我有一个自定义帖子类型 - 诗歌。 我创建了两个分类法——城市和作者。 当我点击“巴黎”菜单项时 - 我需要显示该城市的所有作者和他的诗歌列表。 怎么做 ? 谢谢。

【问题讨论】:

    标签: wordpress custom-post-type taxonomy custom-taxonomy


    【解决方案1】:

    您可能想看看Codex entry for WP Query。这为您提供了创建自定义 WordPress 查询所需的所有信息。包括分类参数。

    您希望使用 AND 关系传递给税务查询参数。类似于这个例子的内容:

    $args = array(
        'post_type' => 'post',
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'city',
                'field'    => 'slug',
                'terms'    => 'london',
            ),
            array(
                'taxonomy' => 'author',
                'field'    => 'slug',
                'terms'    => 'dickens',
            ),
        ),
    );
    $query = new WP_Query( $args );
    

    编辑:10/30/17 以下评论

    如果您将作者的保存为帖子元数据,您可以按此排序。但是,如果您的作者也是分类法,它会变得有点棘手,因为没有一种按分类法排序的好方法。看到这个related question

    相反,我们可以使用 get_terms 获取所有作者分类术语。

    $authors = get_terms( 'author', array(
        'hide_empty' => false,
    ) );
    

    这为我们提供了至少分配了一篇文章的所有作者术语。

    现在我们有了可以遍历每个作者并运行查询以获取该作者在该城市的诗歌的术语。像这样:

    foreach ( $authors as $author ) {
        $args = array(
            'post_type' => 'poem',
            'tax_query' => array(
                relation => 'AND',
                array(
                    'taxonomy' => 'city',
                    'field'    => 'slug',
                    'terms'    => 'london',
                ),
                array(
                    'taxonomy' => 'author',
                    'field'    => 'term_id',
                    'terms'    => $author->term_id,
                ),
            ),
        );
        $query = new WP_Query( $args );    
    
        if ( $query->have_posts() ) : 
            while ( $query->have_posts() ) : $query->the_post();
    
                // Put your post markup here
    
            endwhile;
    
        endif; wp_reset_query();
    }
    

    【讨论】:

    • 在这个例子中,术语被严格指出,但我想显示每个作者的所有帖子以及所有城市分类(伦敦、巴黎、马德里等)
    • 好的。我想我跟着。假设所有诗歌都有作者,我将更新答案以获取特定城市的所有诗歌,按作者排序。
    【解决方案2】:

    如果你不擅长编码,你可以使用免费的内容视图插件,并结合你必须结合的东西。我是这样开始的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      相关资源
      最近更新 更多