Intereting Posts
Отключение и включение контента с помощью Customizer Как изменить перенаправление после перемещения страницы в корзину? Как создать специфический для темы перевод buddypress? Поддомен WordPress MU vhost Добавление нового параметра с использованием Kirki или WP customizer с помощью оператора if Как динамически отображать все категории в трех divs на основе четности категорий? Возможно ли получить текущий входной IP-адрес администратора? Автоматически помечать сообщения на основе пользовательских слов dynamic_sidebar, не отображающий боковую панель Модификация того, как данные контролируются / отображаются и сохраняются Ошибка пользовательского сообщения типа dysplay 404 WordPress Предоставление пользователям возможности создать сообщение, которое является настраиваемым типом сообщения на странице Тема WordPress для детей Как упорядочить столбцы пользовательского списка пользователей по дате? Отправка данных с использованием метода GET не работает правильно

WordPress запрос по категориям, отсортированный по пользовательскому полю

У меня есть три настраиваемых поля для каждой из постов в категории событий – год, месяц и день. Я уже запрашиваю категорию событий, и теперь я хочу сортировать сообщения по настраиваемым полям. Я предполагаю, что мне просто нужно вставить что-то в раздел query_posts кода, но я не уверен, что. Какие-либо предложения?

<?php query_posts('category_name=events&showposts=6'); ?> <?php while (have_posts()) : the_post(); ?> <li> <div class="date"> <span class="day"><?php echo get_post_meta($post->ID, 'month', true); ?>/<?php echo get_post_meta($post->ID, 'day', true); ?></span> <span class="year"><?php echo get_post_meta($post->ID, 'year', true); ?></span> </div> <div class="details"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> &rarr;</h3> </div> </li> <?php endwhile; ?> 

Я могу объяснить больше: дата создания сообщения неважно, но я хочу сначала отсортировать поле «год», затем в поле «месяц», а затем в поле «день»

Solutions Collecting From Web of "WordPress запрос по категориям, отсортированный по пользовательскому полю"

Я не думаю, что легко отсортировать по трем различным мета-значениям, и действительно, я не понимаю, почему вам нужно в этом случае. Почему бы не просто сохранить дату события в одном мета-значении и отсортировать его? Это делает ваш запрос намного более эффективным (удаляет два ненужных объединения) и позволяет вам использовать поле порядка WP_Query для сортировки ваших сообщений, а не для написания пользовательского запроса или фильтрации каждого предложения SQL запроса, чтобы заставить его делать то, что вы хотите.

Я думаю, что это можно сделать с добавлением

 meta_key=yourcustomfield&orderby=meta_value 

к запросу

Прежде всего, вы не должны использовать query_posts. Во-вторых, вы должны передать массив, а не строку запроса.

 $query = new WP_Query( array( 'category' => 'event', 'meta_key' => 'month', 'meta_value' => 'June', 'meta_compare' => '<' 'orderby' => 'month') //or whatever parameters you choose. ); // The Loop while ( $query->have_posts() ) : $query->the_post(); //your markup goes here endwhile; // Reset Post Data wp_reset_postdata();