2010-07-30 94 views
0

我通過使用自定義字段「訂購」來訂購我的文章。Wordpress自定義郵政訂購問題

對於每個帖子,訂單的價值是一個數字,它決定了我希望帖子被定位的位置。

我有以下幾點:

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

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

任何想法,我要去哪裏錯了?

回答

0

好的,在別處找到答案。

由於自定義字段值是字母而不是數字。你必須開始與01您的訂購,02,03 ... 10,11

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

0

另一種選擇是創建一個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

1

WordPress是治療值作爲字符串進行排序,那麼10來1次,只需更改以下

orderby=meta_value 

到(值將被視爲數)

orderby=meta_value_num 

當由數排序,使用meta_value_num代替meta_value,使WordPress的TRET值作爲一個數而不是字符串。

我也遇到了同樣的問題,謝赫赫拉幫我解決問題,它像一個魅力。