Intereting Posts
Отключить плагин только для одного сообщения Хранить и работать с огромным массивом в WP tag__in не возвращает сообщения Использование изображений в WordPress – лучшие практики Как предотвратить пустую категорию для отображения содержимого подкатегорий? WordPress Multisite ERR_TOO_MANY_REDIRECTS для всех сайтов, кроме первичных Преимущества и недостатки использования автоматических каналов Динамические wp_enqueue_scripts? Как обновить пользовательский заголовок сообщения из front-end формы с использованием полей ACF? Пользовательский AJAX с помощью кнопок Пользовательский фильтр для основного поиска: как исключить определенный post_type из результатов поиска Я не получаю письмо с напоминанием пароля Как я могу защитить паролем сайт WordPress, не требуя от пользователя входа? Пользовательская таксономия как раскрывающийся список Я не могу редактировать свою домашнюю страницу – редактор страниц просто пуст.

Измените главный архив, чтобы показывать сообщения с мета как последними

У меня возникают проблемы с получением сообщений с meta_value, «проданных» как последний в основном запросе моего настраиваемого типа Post.

Самый лучший / самый простой способ, о котором я могу сейчас думать, – отфильтровать «проданные» сообщения из основного запроса и добавить пользовательский запрос только с «проданными» сообщениями в шаблоне. Но, честно говоря, это кажется таким уродливым, и должен быть лучший / более чистый способ.

Есть ли у кого-нибудь из вас что-то подобное? И как вы его решили? Хотелось бы подумать о лучшем способе решить эту проблему.

Благодаря!

Хорошо, я получил некоторый код, работающий, но все же не думаю, что это лучший способ сделать это, поэтому любые советы и подсказки очень приветствуются.

add_filter( 'posts_results', 'sold_at_last' ); function sold_at_last( $posts_array ) { $at_start = array(); $at_end = array(); if ( is_post_type_archive('objects') || is_tax( 'object_type' ) ) { if ( ! is_admin() ) { foreach ( $posts_array as $post ) { $status = get_field( 'status', $post->ID ); if ( $status == 'Verkocht' ) { $at_end[] = $post; } else { $at_start[] = $post; } } } } $new_posts_array = array_merge( $at_start, $at_end ); if ( ! empty( $new_posts_array ) ) { return $new_posts_array; } else { return $posts_array; }} 

Solutions Collecting From Web of "Измените главный архив, чтобы показывать сообщения с мета как последними"