繁体   English   中英

将标题转换为十进制后,Wordpress发布post_title的顺序?

[英]Wordpress posts order by post_title after converting title in to decimal?

在自定义查询中,我发现我们可以将帖子标题转换为十进制,然后按顺序排序。

例:

    $querystr = "SELECT $wpdb->posts.* ,$wpdb->terms.slug

    FROM $wpdb->posts,$wpdb->terms

    WHERE  $wpdb->posts.post_status = 'publish' 

    AND $wpdb->posts.post_type = 'post' 

    AND $wpdb->terms.slug = 'open-houses' 

    ORDER BY convert(`post_title`, decimal) ASC  "; 
   $pageposts = $wpdb->get_results($querystr, OBJECT); 

这在订购帖子标题时工作正常但实际上在从特定类别获取帖子时没有返回正确的结果(意味着查询在某处错误)。

我想按照单词按查询标准,但与ORDER BY convert('post_title', decimal) ASC ";

就像是

$args = array( 'posts_per_page' => -1 , 'order_by'=>'convert(`post_title`, decimal)', 'order' => 'ASC' , 'category_name' => 'cat-slug-here');
$pageposts = get_posts( $args ) ;

可能吗? 还是其他任何方式?

我的数据包含post_title

  • 78 West 85th Street#3A

  • 786 West 85th Street#5A

  • 252 West 85th Street#4A

  • (等等)

查询后,数据列表应按顺序排列

  • 78 West 85th Street#3A
  • 252 West 85th Street#4A
  • 786 West 85th Street#5A

要将初始字符串转换为数字,请尝试:

$querystr = "SELECT $wpdb->posts.* ,$wpdb->terms.slug
    FROM $wpdb->posts,$wpdb->terms
    WHERE  $wpdb->posts.post_status = 'publish' 
    AND $wpdb->posts.post_type = 'post' 
    AND $wpdb->terms.slug = 'open-houses' 
    ORDER BY CAST(`post_title` AS UNSIGNED) ASC";

那么你可以从post_title中提取小数。 例如:

ORDER BY SUBSTRING_INDEX(`post_title`, ' ', 1) ASC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM