2012-07-09 119 views
1

我添加了一個代碼,允許我按自定義字段對WordPress帖子進行排序。我試圖通過價格排序的職位,但它是由第一個數字排序,而不是價值:通過數字自定義字段排序WordPress帖子

$116.99 
$12.95 
$149.00 
$15.99 

相反的:

$12.95 
$15.99 
$116.99 
$149.00 

我怎樣才能得到它來正確地分類?

下面的代碼:http://pastebin.com/Pe5yfvrE

我把它從這個討論,但問題未得到解決那裏..

http://wordpress.org/support/topic/sort-posts-by-custom-field-in-backend

+0

WordPress不會讓你把數字存儲爲數字嗎? – 2012-07-09 21:21:52

回答

0

我還沒有看看你的代碼,但你這與你的情況中的字符串有關。如果你排序一個字符串,它就像你描述的那樣排序。爲了按照它的值對它進行排序,您需要刪除$標誌並將其轉換爲數字。

3

如果你想這樣做手工(雖然引用WP_Query是更好的選擇的答案),相當不錯的治療可能會使用array_multisort

$arr = array(
    '$116.99', 
    '$12.95', 
    '$149.00', 
    '$15.99' 
); 

$keys = array(); 

foreach ($arr as $value) { 
    $keys[] = floatval(substr($value, 1)); 
} 

array_multisort($keys, SORT_ASC, $arr); 
0
function order($a, $b) {return intval($b) - intval($a);} 
uasort($array, 'order'); 

我不知道能幫助你;)

相關問題