如何在wordpress中仅显示每个类别的两个帖子?

时间:2016-06-07 18:39:54

标签: html css wordpress custom-wordpress-pages

我必须在每个类别中显示2个帖子。以下代码获取属于每个类别的所有帖子。我的结构是基于标签的。我附上了我的设计形象。我的标签包含“所有(显示所有帖子)”,“症状(仅显示与症状相关的帖子等”等,点击每个标签显示相关帖子。  enter image description here

 <?php $recent = new WP_Query("post_type=post&posts_per_page=-1&orderby=date&order=DESC");
                $count=0;                         
                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    while($recent->have_posts()) : $recent->the_post(); ?>
                    <?php $c = get_the_category();
                    $cat =  $c[0]->cat_name;
                    $slug = $c[0]->category_nicename;
                    ?>
                    <div class="element-item transition <?php echo $slug;?>" data-category="<?php echo $slug;?>">
                        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                            <div class="descrip">
                                <h2><?php the_title(); ?></h2>
                             </div>
                        </a>
                    </div>
                <?php endwhile; wp_reset_postdata(); ?> 

[![在此处输入图像说明] [2]] [2]

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

试试这个

<?php

    $cat_args = array(
        'orderby'      => 'date',
        'order'        => 'DESC',
        'child_of'     => 0,
        'parent'       => '',
        'type'         => 'post',
        'hide_empty'   => true,
        'taxonomy'     => 'category',
    );

    $categories = get_categories( $cat_args );

    foreach ( $categories as $category ) {

        $query_args = array(
            'post_type'      => 'post',
            'category_name'  => $category->slug,
            'posts_per_page' => 2,
            'orderby'        => 'date',
            'order'          => 'DESC'
        );

        $recent = new WP_Query($query_args);

        while( $recent->have_posts() ) :
            $recent->the_post();
        ?>
        <div class="element-item transition <?php echo $category->slug;?>" data-category="<?php echo $category->slug;?>">
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                <div class="descrip">
                    <h2><?php the_title(); ?></h2>
                 </div>
            </a>
        </div>
        <?php endwhile;
    }
    wp_reset_postdata();
?>

首先列出所有类别,然后在foreach循环浏览每个类别,并仅查询最近的2个类别。

请注意,您可以通过这种方式列出任何分类。我只是把

'taxonomy'     => 'category',

但这可以是分配给您的自定义帖子类型的分类。

参数列表看起来像这样:

$args = array(
    'type'                     => 'post',
    'child_of'                 => 0,
    'parent'                   => '',
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 1,
    'hierarchical'             => 1,
    'exclude'                  => '',
    'include'                  => '',
    'number'                   => '',
    'taxonomy'                 => 'category',
    'pad_counts'               => false
);

希望这会有所帮助。