按分号用分号命令发帖
我有一个帖子类型的音乐。为此我创建了自定义字段音乐长度。以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,依此类推!有什么办法吗?
使用下面的代码
$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);
但是请注意,这将是对大数据集的速度很慢,因为它必须重新计算,每行的新字符串。
'orderby'=>“REPLACE(meta_value_num,':','')”,不起作用 – maddy
你有没有得到任何错误?当我使用相同的数据结构 – pravindot17
运行相同的查询时,它没有显示任何错误。它显示所有帖子,但没有正确的顺序。 – maddy
请参阅https://*.com/questions/6158726/php-compare-time ans - https://*.com/questions/36609349/compare-the-current-date-to-a -timestamp-in-wordpress-with-meta-query – htmlbrewery