【问题标题】:WP_Query not ordering by titleWP_Query 不按标题排序
【发布时间】:2018-12-12 19:22:47
【问题描述】:

我尝试获取按标题升序排序的所有帖子(具有特定自定义类型),但生成的 SQL 查询在 post_date 之后排序。 代码:

$my_query = new WP_Query( 
   array(
      'post_type' => 'member',
      'posts_per_page' => -1,
      'orderby' => 'title',
      'order' => 'ASC',
    ) 
  );

while ($my_query->have_posts()) {
    $my_query->the_post();
    // get post excerpt
    get_template_part('content/'.get_post_type());
    // wikiwp_get_post_excerpt($post);
}

查询:

SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = '成员' AND (wp_posts.post_status = 'publish' 或 wp_posts.post_status = '已关闭' 或 wp_posts.post_status = '私人' 或 wp_posts.post_status = '隐藏') 按 wp_posts.post_date ASC 排序

我真的不明白为什么会这样。我停用了大部分插件并尝试了不同的组合,但都没有成功。

$my_query:

WP_Query 对象 ( [query] => 数组 ( [post_type] => 成员 [posts_per_page] => -1 [orderby] => 标题 [order] => ASC ) [query_vars] => 数组([post_type] => 成员 [posts_per_page] => -1 [orderby] => order [order] => ASC [error] => [m] => [p] => 0 [post_parent] => [subpost] => [subpost_id] => [附件] => [attachment_id] => 0 [name] => [static] => [pagename] => [page_id] => 0 [秒] => [分钟] => [小时] => [日] => 0 [月数] => 0 [年] => 0 [w] => 0 [category_name] => [tag] => [cat] => [tag_id] => [author] => [author_name] => [feed] => [tb] => [分页] => 0 [元键] => [meta_value] => [preview] => [s] => [sentence] => [title] => [fields] => [menu_order] => [embed] => [category__in] => Array ( ) [category__not_in] => 数组 ( ) [category__and] => 数组 ( ) [post__in] => 数组 () [post__not_in] => 数组 () [post_name__in] => 数组 ( ) [tag__in] => 数组 ( ) [tag__not_in] => 数组 ( ) [tag__and] => 数组 ( ) [tag_slug__in] => 数组 ( ) [tag_slug__and] => 数组 ( ) [post_parent__in] => 数组 ( ) [post_parent__not_in] => 数组 ( ) [作者__in] => 数组 ( ) [作者__not_in] => 数组 ( ) [ignore_sticky_posts] => [suppress_filters] => [cache_results] => 1 [update_post_term_cache] => 1 [lazy_load_term_meta] => 1 [update_post_meta_cache] => 1 [nopage] => 1 [cmets_per_page] => 50 [no_found_rows] => ) [tax_query] => WP_Tax_Query 对象 ( [queries] => Array () [relation] => AND [table_aliases:protected] => Array () [queried_terms] => Array () [primary_table] => wp_posts [primary_id_column] => ID ) [meta_query] => WP_Meta_Query 对象 ( [查询] => 数组 () [关系] => [meta_table] => [meta_id_column] => [primary_table] => [primary_id_column] => [table_aliases:protected] => Array () [clauses:protected] => Array () [has_or_relation:protected] => ) [date_query] => [request] =>选择 wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'member' 和(wp_posts.post_status = '发布'或 wp_posts.post_status = “关闭”或 wp_posts.post_status = “私人”或 wp_posts.post_status = '隐藏') 按 wp_posts.post_date ASC 排序))

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    我遇到了同样的问题。我使用'post_title'而不是'title'解决了它。

    $my_query = new WP_Query( 
       array(
          'post_type' => 'member',
          'post_status' => 'publish',
          'posts_per_page' => -1,
          'orderby' => 'post_title',
          'order' => 'ASC'
        ) 
      );
    

    【讨论】:

      【解决方案2】:

      您的代码看起来不错。我会查看您是否在其他地方有任何代码,例如更改您创建的查询输出的过滤器。听起来你可能有类似的东西,因为你的帖子循环是正确的。

      $args = array(
          'post_type' => 'member',
          'posts_per_page' => '-1',
          'order' => 'ASC',
          'orderby' => 'title',
      );
      
      $my_query = new WP_Query( $args );
      
      if ( $my_query->have_posts() ) {
          while ( $my_query->have_posts() ) {
              $my_query->the_post();
      
              get_template_part('content/'.get_post_type());
          }
      }
      
      wp_reset_postdata();
      

      【讨论】:

      • 谢谢。我安装了一个干扰的帖子订购插件,您的评论提醒了我。
      • 您可以将其标记为正确答案,因为它可以帮助您解决问题,哈哈!
      【解决方案3】:

      请使用以下代码:

      $my_query = new WP_Query( 
         array(
            'post_type' => 'member',
            'post_status' => 'publish',
            'posts_per_page' => -1,
            'orderby' => 'title',
            'order' => 'ASC'
          ) 
        );
      

      您最后在ASC 之后添加了,,所以我认为问题出在。然后$my_query 是您的数组所在的位置,所以只需像下面那样循环遍历以获得您想要的结果。

      while($my_query->have_posts()) : $my_query->the_post();
      //Your post code here to get post attributes
      endwhile;wp_reset_query(); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-29
        • 1970-01-01
        • 2018-11-28
        相关资源
        最近更新 更多