【问题标题】:How to show recent post of custom category using WP_Query?如何使用 WP_Query 显示自定义类别的最新帖子?
【发布时间】:2018-06-12 12:40:03
【问题描述】:

我在 WordPress 网站上工作,并面临自定义 wp_query 的问题,因为我在这里使用 tax_query。我想显示具有某些分类的特定术语的帖子。它显示了完美的结果,但显示了较旧的帖子。我只想显示此类别的最新帖子。这怎么可能?是否有任何订单参数,或由某些代码完成。这是我的查询代码结构:

$category = $attr['category_slug'];        
$args=array( 'post_type'        =>'post',
                     'posts_per_page'   =>'1',
                     'post_status'      =>'publish',
                     'tax_query'        => array(
                                        array(
                                            'taxonomy' => 'category',
                                            'field'    => 'slug',
                                            'terms'    => explode(",",$category),
                                            ),
                                        ),
                );

      $query  = new WP_Query($args);

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    关注codex

    $category = $attr['category_slug'];        
    $args=array( 'post_type'        =>'post',
                         'posts_per_page'   =>'1',
                         'post_status'      =>'publish',
                         'orderby' => 'date',
                         'order'   => 'DESC',
                         'tax_query'        => array(
                                            array(
                                                'taxonomy' => 'category',
                                                'field'    => 'slug',
                                                'terms'    => explode(",",$category),
                                                ),
                                            ),
                    );
    
          $query  = new WP_Query($args);
    

    【讨论】:

    • 是的,我找到了答案
    【解决方案2】:

    即使你没有使用“order”参数,它也会将“DESC”作为默认的升序,你必须提到

    'order' => 'ASC',
    

    现在降序的代码应该是这样的:

    $category = $attr['category_slug'];        
    $args=array( 'post_type'        =>'post',
                         'posts_per_page'   =>'1',
                         'post_status'      =>'publish',
                         'order'            => 'DESC',
                         'tax_query'        => array(
                                            array(
                                                'taxonomy' => 'category',
                                                'field'    => 'slug',
                                                'terms'    => explode(",",$category),
                                                ),
                                            ),
                    );
    
          $query  = new WP_Query($args);
    

    【讨论】:

    • 显式优于隐式:)
    【解决方案3】:

    您可以添加 'order' => 'DESC' 以显示最新帖子。

    $category = $attr['category_slug'];        
    $args=array( 'post_type'        =>'post',
                         'posts_per_page'   =>'1',
                         'post_status'      =>'publish',
                         'order' => 'DESC',
                         'tax_query'        => array(
                                            array(
                                                'taxonomy' => 'category',
                                                'field'    => 'slug',
                                                'terms'    => explode(",",$category),
                                                ),
                                            ),
                    );
    
          $query  = new WP_Query($args);
    

    【讨论】:

      【解决方案4】:

      您是否尝试根据文档https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters 使用 order 和 orderby 选项:

      $args = array(
          'post_type'        =>'post',
          'posts_per_page'   =>'1',
          'post_status'      =>'publish',
          'orderby' => 'date',
          'order' => 'DESC',
          'tax_query'        => array(
                  array(
                      'taxonomy' => 'category',
                      'field'    => 'slug',
                      'terms'    => explode(",",$category),
                 ),
              )
          );
      

      【讨论】:

      • yes 没有使用任何参数,因为它默认将“order”字段值作为“DESC”,但它对我不起作用。我试过很多次。在此之后,我设置了它的值,然后它就可以正常工作了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      相关资源
      最近更新 更多