1
我正在使用wordpress。一些產品價格不是數字,他們就像P.O.R. (價格應要求)。我有一個過濾器,將價格從低到高和從高到低排序。下面你可以看到我的排序代碼:比較/排序價格並將文本價格推到結果的底部 - PHP
低到高
$args = array(
'post_type' => 'products',
'meta_key' => 'product_price',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'posts_per_page'=> -1
);
$post_list = get_posts($args);
前高後低
$args = array(
'post_type' => 'products',
'meta_key' => 'product_price',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page'=> -1
);
$post_list = get_posts($args);
上面的代碼工作它應該如何。當字符串與一個整數進行比較時,它被視爲0,這就是爲什麼第一種情況(低到高)的產品與P.O.R.在第二種情況下(從高到低)他們在底部。但我希望P.O.R.項目總是在底部。研究了很多東西,但沒有找到解決辦法。請有任何想法嗎?
是的想法很簡單,很好。但它不是我們想要的''meta_value_num'=>'0','沒有'por'項目,因爲por項目的價格只是P.O.R.而不是0.任何想法? – aidadev
您在您的問題中寫道,當一個字符串與一個整數進行比較時,它被視爲零。你確定它不被視爲1?在這種情況下,您可以將其更改爲'meta_value_num'=>'1'。 對於第一個查詢和''meta_value'=>'POR','meta_compare'=>'meta_value'=>'POR','meta_compare'=>'!=' '=''第二個應該工作。讓我知道:) –
謝謝。我已經更新了你的答案並被接受了。 @L L – aidadev