如何以数字方式对自定义字段数据进行排序,以字符串形式存储。我无法将其更改为数据库。
query_posts($query_string. '&orderby=meta_value&meta_key=price&order=DESC' );
这就是我正在使用的,但是它将它排序为字符串,因为它也存储为字符串。
有谁能告诉我如何在不改变数据库的情况下将其转换为数字?
提前致谢。
迷宫般
答案 0 :(得分:0)
您可以使用custom query string来填充字符串元数据:
$querystr = "
SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'price'
AND wposts.post_type = 'post'
ORDER BY ABS(wpostmeta.meta_value) DESC
";
如果您的元值包含美元符号($ 123.45),您可以调整ORDER BY来删除它:
ORDER BY ABS(SUBSTRING(wpostmeta.meta_value, 2)) DESC