порядок по настраиваемому полю включает даже если пусто - wordpress - PullRequest
1 голос
/ 24 марта 2011

У меня есть запрос на страницу сообщений.

Возвращает результаты на основе пользовательского типа записи и значения настраиваемого поля.Теперь я добавил возможность упорядочивать результаты на основе другого настраиваемого поля.

$loop = new WP_Query( array ( 'post_type' => 'new', 'orderby' => 'meta_value_num', 'meta_key' => 'over-length', 'meta_query' => array( array( 'key' => 'over-make', 'value' => 'Doral', 'compare' => 'LIKE') ) ) );

Я столкнулся с небольшой проблемой.Я упорядочиваю результаты по настраиваемому полю с именем «over-length», но кажется, что если сообщение не содержит значения «over-length», оно исключается из результатов.

I 'Мне интересно, как я мог изменить свой код, чтобы он включал в себя пост, который не имеет значения для orderby.

Также просто думал об обходном пути, но не уверен, как это сделать.Я использую плагин под названием «больше полей» для создания своих пользовательских полей.Будет ли проще проверить, пустое ли поле 'over-length' и установить его в 0?если да, то как мне это сделать.

Обновление

Я рассмотрел проблему чуть дальше.Похоже, что если значение «over-length» не задано, настраиваемое поле не добавляется в wp_postmeta в базе данных.Если я присваиваю сообщению слишком большое значение, затем возвращаюсь и удаляю его, оно фактически включает результат в мой запрос, поскольку поле все еще существует в базе данных.Итак, как я могу получить это настраиваемое поле для ввода в базу данных, если оно имеет значение или нет?

1 Ответ

0 голосов
/ 26 марта 2011

О вашем последнем запросе - для способа добавить мета-ключ (настраиваемое поле) во все сообщения, даже если он оставлен пустым:

Я часто использую плагин Шаблон пользовательских полей для такого рода вещей. Он похож на тот, который вы используете (больше полей), но дает вам много возможностей для игры с полями, и что наиболее важно для этого случая, вы можете настроить скрытые поля и значения по умолчанию. Возможно, вы можете установить значение по умолчанию = '' (пробел), чтобы поле было вставлено, если оставить его пустым. Или, немного потрудившись, измените код плагина, чтобы вставить все поля в БД, не проверяя пустые значения. В случае CustomFieldsTemplate это не должно быть сложно сделать.

...