Intereting Posts
Как использовать страницу на главной странице, почему работает / page / ###? Создавайте настраиваемые столбцы в панелях администратора (особенно для настройки ширины ячеек столбцов) Как передать внешнюю функцию WP_REST_Request Установка темы с помощью пользовательского репозитория Помощь нужна с помощью wp_trim_words Получить все сообщения, независимо от статуса Если тег существует, то эхо один раз Функция Hooked on Init работает несколько раз Как сделать / Что запускает автоматическое обновление WordPress? Свойства wpquery last_query и last_result: должны ли они быть общедоступными или частными? Добавить миниатюру к последним сообщениям с помощью фильтров Функция проверки роли пользователя WordPress (несколько ролей)? Как обновить номер страницы для загрузки сообщений через ajax? Проблема с работой с Metabox – флажок, чтобы включить продажи На страницу Постоянная ссылка Структура для типа публикации страницы

Добавление настраиваемых типов сообщений в archive.php

У меня есть 3 разных типа сообщений в моем блоге. Когда я нажимаю на категорию настраиваемого сообщения, я перенаправляю на страницу 404, потому что по умолчанию archive.php не распознает настраиваемые типы сообщений.

Я нашел это решение (и другие, используя тот же подход) в нескольких разных местах:

add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() || is_tag()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('post','cpt'); // replace cpt to your custom post type $query->set('post_type',$post_type); return $query; } } 

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

Я ищу решение, которое не использует pre_get_posts в течение нескольких часов, и я ничего не нашел. Помощь была бы действительно оценена.

Solutions Collecting From Web of "Добавление настраиваемых типов сообщений в archive.php"

В действии pre_get_posts убедитесь, что объект запроса is_main_query только на основной архивный запрос и исключает дополнительные запросы.

 add_action('pre_get_posts', 'query_post_type'); function query_post_type($query) { if($query->is_main_query() && ( is_category() || is_tag() )) { $query->set( 'post_type', array('post','cpt') ); } }