Wordpress: сортировка по числовому полю - PullRequest
1 голос
/ 27 июля 2010

Как я могу отсортировать данные настраиваемого поля в числовом виде, которые хранятся в виде строки.Я не могу перевести его в базу данных.

query_posts($query_string. '&orderby=meta_value&meta_key=price&order=DESC' );

Это то, что я использую, но сортирует его как строку, так как оно также хранится как строка.Как я могу преобразовать его в числовой без изменения в базе данных?

Заранее спасибо.

Mazy

1 Ответ

0 голосов
/ 27 июля 2010

Вы можете сделать это с помощью пользовательской строки запроса , которая преобразует метаданные строки:

$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 ABS(SUBSTRING(wpostmeta.meta_value, 2)) DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...