Как вывести список статей, упорядоченный по числовому значению произвольного поля WordPress (Создание сайтов: PHP: WordPress) — 1C-h
 

Как вывести список статей, упорядоченный по числовому значению произвольного поля WordPress (Создание сайтов: PHP: WordPress)

Задача: В боковой колонке сайта требуется вывести перечень статей, у которых назначена своя собственная рейтинговая шкала (по значению произвольного поля WordPress «meta_key»). При этом нужно, чтобы сообщения были отсортированы по числовому значению этого поля (нужно, чтобы meta_value — было числом)
Решение
В WordPress есть возможность добавлять любые произвольные поля (meta_key) и использовать затем их значения (meta_value) при оформлении сайта. Но важно то, что по умолчанию в базе данных WordPress тип значения meta_value является LONGTEXT, и без дополнительных усилий мы не можем упорядочить записи по числовому представлению meta_value.
Чтобы заставить MySQL вернуть значение meta_value в виде числа, мы должны исполнить запрос вида: ‘meta_value +0’.
Допустим, мы добавили произвольное поле с названием «rate», при написании статей мы назначаем некоторым своим записям числовые значения этого поля (5, 7, 29, 99 и т.д.) и затем хотим вывести эти статьи, упорядочив их по этому «рейтингу».

Итак, вот наш запрос и его исполнение (этот код можно добавить в файл sidebar.php):

posts
LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id)
WHERE $wpdb->posts.post_status = 'publish'
AND $wpdb->postmeta.meta_key = 'rate'
ORDER BY $wpdb->postmeta.meta_value+0";

$pageposts = $wpdb->get_results($querystr, OBJECT);
?>

    
    
        

        
- (r ID); echo $custom["rate"][0]; ?>)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Next Post

Как разбить большую страницу вордпресс на страницы, уменьшение уровней вложенности страниц (Сайтостроение: WordPress: SEO-оптимизация)

Пт Янв 7 , 2011
Вопрос Как разбить большую страницу вордпресс на страницы. Почему страница не разбивается на страницы тегом nextpage. Как эти страницы перенести с четвертого уровня вложенности на третий. Ответ Если у вас очень большая страница и вы хотите ее разбить на части, то используйте для этого тег: