Пользовательский Query_posts () параметр
-
16-10-2019 - |
Вопрос
Я добавляю функции голосования в тему. Посетители могут голосовать за должности вверх или вниз. Я создал таблицу для хранения количества голосов за каждый пост, и это работает нормально. Теперь я пытаюсь сортировать посты по их голосам.
Я «голосовал» и «проголосовал». Например, когда вы нажимаете на «Голосование» новый параметр sort=up
передается в URL.
В цикле, если параметр существует, и есть = "up", я хочу зацикливаться на посты с голосованием.
wpdb->get_results("SELECT post_id, FROM $wpdb->votes WHERE up > 5");
Вот где я хочу использовать что -то вроде query_posts('sort=up')
перед петлей. Мой вопрос: как я создать пользовательский параметр «Sort»?
Решение
Если у вас есть данные в отдельной таблице, добавление поддержки для этого в запросе несколько грязно. В основном вам нужно будет фильтровать posts_where
а также posts_join
Чтобы изменить необработанный SQL -запрос, чтобы ваша пользовательская таблица была соединена и проверялась на ваших пользовательских значениях.
Согласно [быстрее :)] Предложение Ану имеет смысл хранить ценности в Настраиваемые поля и использовать Пользовательские параметры поля (связано с заказом, но не то же самое) в запросе.
Другие советы
Я почти уверен, что единственный способ сделать это, используя orderby
Параметр состоит в том, чтобы хранить значения голосования в пользовательском поле.
Из Codex (http://codex.wordpress.org/function_reference/query_posts#orderby_parameters)
Порядок параметров
orderby=meta_value Note: A meta_key=keyname must also be present in the query. Note also that the sorting will be alphabetical
orderby=meta_value_num - Order by numeric meta value (available with Version 2.8)