我有一个帖子类型的音乐。为此我创建了自定义字段音乐长度。以01:50这种格式存储音乐持续时间 我希望按音乐长度显示订单。我通过meta_value和meta_value_num使用了这两个订单。但它不起作用。我的帖子代码是:
<code>
$args = array(
'post_type' => 'music',
'meta_key' => 'length',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 10
);
$pop_posts = new WP_Query( $args );
</code>
我的问题是如何以分号格式(01:50,02:46,03:04,02:37)以元值命名帖子。所以带有元值03:04的帖子先来02:46然后等等!有什么办法吗?
答案 0 :(得分:1)
使用以下代码
$args = array(
'post_type' => 'music',
'meta_key' => 'length',
'orderby' => "REPLACE(meta_value_num, ':', '')",
'order' => 'DESC',
'posts_per_page' => 10
);
$pop_posts = new WP_Query( $args );
但请注意,对于大型数据集来说,它会非常慢,因为它必须为每一行重新计算新字符串。