Intereting Posts
Расширение WP_Widget вызывает ошибку при использовании виджета Monster Изменить каталог загрузки на странице пользовательского плагина Исключить или включить идентификаторы категорий в WP_Query Ширина автоматической обрезки, а не высота Auto 301 to full post Постоянная ссылка? (используя: / archive /% post_id% to% post_name%) Не удалось создать пользовательскую реализацию шаблона архива продукта WooCommece Скрытие расширенного пользовательского поля на основе выбора таксономии Получить текущий номер страницы Как получить дочернюю тему для загрузки скриптов из родительской темы? Создано новое пользовательское меню. как его применять? Рабочий виджет не отображается по внешнему виду -> виджеты Как изменить логотип на странице входа? Могу ли я запустить add_action-hook внутри функции, которая получает данные через wp_ajax? Как получить Loop, работающий с $ wpdb-> get_results () Удаление настраиваемого мета-поля, добавленного в родительскую тему

pre_get_posts и BBPress в теме Swagger

В теме, которую я использую, есть файл custom.php, где следующий код вызывает функцию pre_get_post, которая добавляет пользовательские типы сообщений в исходный объект запроса.

Я узнал, что вы не можете условно загрузить это … и он разбивает страницы BBPress на forums.php, отказываясь от BBP, чтобы полностью загрузить определенные типы сообщений (темы, форумы и т. Д.).

if (!is_admin()){ add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { global $oswcPostTypes; if(empty( $query->query_vars['suppress_filters'] ) ) { $post_type = get_query_var('post_type'); global $oswc_reviews; // BEGIN CULPRIT CODE if($post_type ) { $post_type = $post_type; $query->set('post_type',$post_type); return $query; // END CULPRIT CODE } elseif(!is_page() && !is_preview() && !is_attachment() && !is_search() ) { $post_type = array('post'); foreach($oswcPostTypes->postTypes as $postType){ array_push($post_type, $postType->id); } $query->set('post_type',$post_type); return $query; } } } } 

Спасибо заранее, это тяжело.

EDIT: Исправлено благодаря Брайану Маккалло. Он прислал мне свою новую тему, которая имела пересмотренную функцию PGP. Старое БЫЛО содержать определенные типы сообщений из запроса, такие как форум и тема PT … Исправленный код:

 if(!is_admin()) { add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { //get review types global $oswcPostTypes; if(empty($query->query_vars['suppress_filters'])) { $post_type = get_query_var('post_type'); if(!$post_type && !is_page() && !is_preview() && !is_attachment() && !is_search()) { $post_type = array('post'); foreach($oswcPostTypes->postTypes as $postType){ array_push($post_type, $postType->id); } $query->set('post_type',$post_type); //the returned array contains the "post" post type and all of the user-defined review types return $query; } } } } 

Solutions Collecting From Web of "pre_get_posts и BBPress в теме Swagger"

Я не на 100% понимаю, в чем проблема, но я бы начал с включения условий внутри функции, а не для обертывания всей функции.

 add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if (!is_admin()){ global $oswcPostTypes; if(empty( get_query_var('suppress_filters' ) ) { $post_type = get_query_var('post_type'); //get theme options global $oswc_reviews; if($post_type ) { $post_type = $post_type; set_query_var('post_type',$post_type); return $query; } elseif(!is_page() && !is_preview() && !is_attachment() && !is_search() ) { $post_type = array('post'); foreach($oswcPostTypes->postTypes as $postType){ array_push($post_type, $postType->id); } set_query_var('post_type',$post_type); return $query; } } } }