Wordpress自定义邮政订购问题

问题描述:

我通过使用自定义字段“订购”来订购我的文章。Wordpress自定义邮政订购问题

对于每个帖子,订单的价值是一个数字,它决定了我希望帖子被定位的位置。

我有以下几点:

query_posts('category_name=category&meta_key=order&orderby=meta_value&order=ASC'); 

这似乎已经工作得很好,直到后#10,在列表中的第2本帖位置本身。

任何想法,我要去哪里错了?

好的,在别处找到答案。

由于自定义字段值是字母而不是数字。你必须开始与01您的订购,02,03 ... 10,11

,而不是1,2,3 ... 10,11

另一种选择是创建一个custom query string抛给你的字母作为顺序小数BY子句的自定义字段:

$querystr = " 
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta 
    WHERE wposts.ID = wpostmeta.post_id 
    AND wpostmeta.meta_key = 'your-custom-field-name' 
    AND wposts.post_type = 'post' 
    ORDER BY CAST(wpostmeta.meta_value AS DECIMAL) DESC 
"; 
+0

这也是一个很好的解决方案。谢谢。 – Oldie 2010-07-30 11:11:54

WordPress是治疗值作为字符串进行排序,那么10来1次,只需更改以下

orderby=meta_value 

到(值将被视为数)

orderby=meta_value_num 

当由数排序,使用meta_value_num代替meta_value,使WordPress的TRET值作为一个数而不是字符串。

我也遇到了同样的问题,谢赫赫拉帮我解决问题,它像一个魅力。