个性化阅读
专注于IT技术分析

显示CPT每个分类的最新帖子

我正在尝试显示每个自定义分类法的最新帖子。 CPT用于”成员服务”, 而分类法则用于”服务”。

目前, 我在网上尝试将两个脚本(获取自定义分类法和在自定义分类法下获取帖子)组合在一起。

我不确定我要去哪里。

<!-- Add in list of member services -->
<?php // Get the taxonomy's terms
    $terms = get_terms(
        array(
            'taxonomy'   => 'services', 'hide_empty' => false, )
    );
    // Check if any term exists
    if ( ! empty( $terms ) && is_array( $terms ) ) {
        // Run a loop and print them all
        foreach ( $terms as $term ) { ?>
            <a href="<?php echo esc_url( get_term_link( $term ) ) ?>">
                <?php echo $term->name; ?>
            </a>
<?php
        $post_args = array(
            'numberposts' => 5, 'post_type' => 'services', 'services' => $term->term_id, );
        $posts = get_posts($post_args);
        foreach($posts as $post) {
            ?>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php   
        }
        }
    } 
?>

现实世界的逻辑:在首页上显示根据自定义分类法提供的最新会员服务(CPT)-“产品”, “价格”等。

当前:显示自定义分类法的列表, 因此get_terms似乎有效。


#1


是的, 你的get_terms有效, 但你的get_posts不起作用, 因为你已在post_type中传递了分类名称。我已经对你的代码进行了一些更改。也许这对你有用

        <?php
        $post_args = array(
            'posts_per_page' => 5, 'post_type' => 'member-services', 'orderby' => 'date', 'sort_order' => 'desc', 'tax_query' => array(
                array(
                    'taxonomy' => 'services', 'field' => 'id', 'terms' => $term->term_id, 'include_children' => false
                )
            )
        );
        $posts = get_posts($post_args);
        ?>

#2


你必须在get_posts()函数中编写tax_query。

只需更换

‘服务’=> $ term-> term_id,

‘tax_query’=>数组(array(‘taxonomy’=>’services’, ‘field’=>’id’, ‘terms’=> $ term-> term_id))

赞(0)
未经允许不得转载:srcmini » 显示CPT每个分类的最新帖子

评论 抢沙发

评论前必须登录!