Правильно запросить дополнительные сообщения для категории WordPress

Мой случай таков: у меня есть категория и какой-то отдельно определенный список сообщений, которые всегда будут отображаться в верхней части страницы категории. Фактические сообщения или сообщения по умолчанию показаны ниже на странице 2 или через ajax. Просто создав новый WP_Query, эта проблема решена, но WordPress фактически выполнила весь ненужный процесс в основном запросе до того, как это произошло, что должно происходить только при запросе пользователем страницы 2 или через ajax. Я использовал хук pre_get_posts, чтобы изменить сам основной запрос, но мог показывать эти сообщения только по категориям, но не определяя список сообщений.

2 ответа

Ваша реализация, вероятно, довольно грязная... не могли бы вы опубликовать код, который вы написали, и описать, где вы его добавили?

Быстрый вопрос: пытались ли вы создать шорткод, который возвращает нужные сообщения? Затем вы можете использовать шорткод внутри бэкэнда, используя [your-shortcode], или свой код, используя do_shortcode( 'your-shortcode')?

На самом деле это был ошибочный тест, вот мой код, и он работал:

function rewrite_main_query ($query ){
 if( $query->is_main_query() &&   $query->is_category){
     global $wp_query; 
     $postid=37; //the post id wanted
     $query->set('p',$postid);
 }  
}
add_action('pre_get_posts', 'rewrite_main_query');

Ранее я использовал взамен "post__in" и не работал, я думал, что они работали одинаково для "post__in" и "p" и не проверял его. Теперь он работает с "р".

Другие вопросы по тегам