Intereting Posts
Код цвета java, как он окрашен в затмение Почему WordPress полагается на полнофункциональный site_url с 15-ступенчатым планом перемещения сайта? Как наилучшим образом настроить для развития двухсторонней прибрежной команды? Неожиданное поведение esc_html и esc_attr Добавить дату с детской темы и изменить размер шрифта на главной странице Как создать meta_query для получения всех сообщений с конкретными метаданными? Как добавить прикрепление изображения к сообщению из одного мета-ключа (Woocommerce) esc_attr не работает в shortcode Автор должен заполнить информацию о профиле до публикации публикации? Какой членский плагин? Создание URL-адреса конкретной страницы Как сохранить значения из списков категорий выпадающих списков после подачи неправильной формы? Есть ли глобальный файл functions.php, который работает для любой темы? Уведомление по электронной почте о новом сообщении включает код Ссылка на страницу с сообщениями определенного типа

Если параметр orderby с использованием pre_get_posts одинаковый для нескольких сообщений, какой резерв использует запрос?

Таким образом, у меня есть 3 пользовательских типа сообщений, которые я хочу заказать по menu_order & имеют «дату» в качестве резервного параметра, так как большинство сообщений будут иметь порядок меню по умолчанию «0».

Было бы неплохо, если бы pre_get_posts делали это относительно просто (в отличие от чего-то вроде этого – Множественные параметры порядка в пред-предпроцессе () ), но не выглядели вероятными.

Это отлично работает с сообщениями, где для параметра меню задано определенное значение, где оно равно 0, порядок выглядит в основном случайным:

function order_cpt( $query ) { if ( !is_admin() && $query->is_post_type_archive( array ( 'cat1', 'cat2', 'cat3' ) && query->is_main_query() ) { $query->set( 'orderby', 'menu_order'); $query->set( 'order', 'DESC' ); return $query; } } add_action( 'pre_get_posts', 'order_cpt'); 

Поэтому первый вопрос, на который я, похоже, не могу найти ответ, – это то, как сообщения с таким же порядком меню обрабатываются с использованием вышеприведенной функции?

И pre_get_posts лучший маршрут, или я должен смотреть на пользовательский WP_Query?

благодаря

Для идентичных значений они будут в том порядке, в котором они будут возвращены механизмом базы данных, который обычно был бы порядком их вставки в базу данных.

Во всяком случае, связанный с вами вопрос WP_Query , вы можете заказать несколько столбцов с помощью WP_Query :

 $query->set( 'orderby', array( 'menu_order' => 'ASC', 'date' => 'ASC' ) ); 

pre_get_posts действует на экземпляр WP_Query и имеет те же параметры, что и для него, поэтому, если pre_get_posts или пользовательский WP_Query является правильным выбором, зависит от того, пытаетесь ли вы изменить основной запрос или нет.