Вопрос

Я добавляю функции голосования в тему. Посетители могут голосовать за должности вверх или вниз. Я создал таблицу для хранения количества голосов за каждый пост, и это работает нормально. Теперь я пытаюсь сортировать посты по их голосам.

Я «голосовал» и «проголосовал». Например, когда вы нажимаете на «Голосование» новый параметр 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top