【发布时间】:2018-10-06 20:34:35
【问题描述】:
是否可以按 DESC 对整数进行排序,然后按 ASC 对单个自定义字段进行小数排序?
我有一个自定义帖子类型,其中包含一个名为“订单”的自定义字段。 Order 中存储的值是整数和小数:01、02、03、03.01、03.02、03.03、04 等,其中小数是整数值的子主题(参见下面的示例)。
如果我按DESC 的顺序对“订单”进行排序,我会得到:
04 Vans
03.03 Vauxhall
03.02 Nissan
03.01 Honda
03 Cars
02 Buses
01 Bicycles
而我希望任何十进制值按ASC 顺序排序如下:
04 Vans
03 Cars
03.01 Honda
03.02 Nissan
03.03 Vauxhall
02 Buses
01 Bicycles
我已经看到我可以使用两个自定义字段来解决这个问题,但我宁愿只更新一个字段,除非它太复杂以至于不值得。
[以下 cmets 后的其他信息]
我目前正在使用以下 WP_Query 检索内容:
<?php
$args=array(
'post_type' => 'vehicleposts',
'post_status' => 'publish',
'meta_key' => 'Order',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'nopaging' => true // Disable post limit per page
);
$customQuery = null;
$customQuery = new WP_Query($args);
?>
<?php if ( $customQuery->have_posts() ) while ($customQuery->have_posts() ) : $customQuery->the_post(); ?>
<?php get_template_part( 'vehicle', 'posts' ); ?>
<?php endwhile; wp_reset_query(); ?>
除了用于排序顺序之外,“Order”的值还在页面上显示为数字。如果我遗漏了您需要回答的任何信息,请随时纠正我。
【问题讨论】:
-
您需要更具体。您是否通过 WP_Query 请求检索此数据?这是 $wpdb 查询吗?数据需要采用什么格式才能使用?
-
现在这样更有帮助吗?我已经添加了我的 WP_Query 和值的显示方式。
-
好多了,ta。只是让人们看到你正在提取的数据的结构。
-
就个人而言,为了便于实施,我将子项设为主项的子项,然后使用您的查询拉入父项,并在模板内拉入其下方的每个子项。似乎是最简单的方法,不必构建帖子数组,按小数点前的内容排序,获取小数点后的所有内容,按子数组排序,然后将其输出到模板。
-
谢谢,这很有帮助,我不知道帖子的父子关系,所以我学到了一些新东西。当您建议不要尝试将自定义字段解析为两个值时,您为我回答了这个问题。最后,我添加了第二个名为“子订单”的自定义字段,并按两者排序,因为我已经知道该怎么做,而且只花了几个小时。
标签: wordpress