2017-02-16 23 views
1

Я создал пользовательский тип сообщения, называемый «Производство», и добавил массу сообщений и категорий. Работают только отдельные страницы, но на странице категории/архива нет сообщений.WordPress Custom Post Types Категория страницы не загружается сообщения

Изготовления разбиты на разные категории, мне нужно отобразить архив всех сообщений в каждой категории. Когда я перехожу в Производство> Категория> Ge Speedtronic и нажимаю «категория просмотра», он меня достает по указанному ниже адресу.

http://localhost/category/manufactures/ge-speedtronic/

Это где он получает в заблуждение. Категории, которые я использую для персонализированного типа сообщений «Производство», также отображаются под другими настраиваемыми типами сообщений и по умолчанию. Поэтому я создал категорию под названием «Производство-Cat» с подкатегориями. Это может вызвать проблему.

Любая идея, что сообщения не загружаются на страницу категории? Можно ли создавать категории, которые отображаются только под определенным типом сообщения?

Этот код находится в моей functions.php

add_action('init', 'create_manufacturers'); 
function create_manufacturers() { 
    register_post_type('manufacturers', 
    array(
     'labels' => array(
     'name' => __('Manufacturers'), 
     'singular_name' => __('Manufacturer') 
    ), 
     'hierarchical'  => true, 
     'public'    => true, 
     'show_ui'    => true, 
     'show_in_menu'  => true, 
     'show_in_nav_menus' => true, 
     'show_in_admin_bar' => true, 
     'menu_position'  => 5, 
     'can_export'   => true, 
     'has_archive'   => true, 
     'has_category'   => true, 
     'exclude_from_search' => false, 
     'publicly_queryable' => true, 
     'capability_type'  => 'post', 
     'taxonomies' => array('category'), 
     'rewrite' => array('slug' => 'manufacturers'), 
     'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments') 
    ) 
); 
} 

Это код в моем файле category.php.

<?php get_header();?> 
<div class="container page-category-wrap"> 
    <div class="row"> 
     <div class="col-md-9"> 
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
      <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
       <div class="entry-content"> 
        <h3><?php the_title(); ?></h3> 
        <?php the_content(); ?> 
       </div> 
      </article> 
      <?php endwhile; endif; ?> 
     </div> 
     <div class="col-md-3"> 
      <?php dynamic_sidebar ('sidebar-1');?> 
     </div> 
    </div> 
</div> 
<?php get_footer(); ?> 

ответ

1

Вы должны добавить свой собственный пост типа к объекту запроса:

function my_query_post_type($query) { 
    if (is_category() && (! isset($query->query_vars['suppress_filters']) || false == $query->query_vars['suppress_filters'])) { 
     $query->set('post_type', array('post', 'manufacturers')); 
     return $query; 
    } 
} 
add_filter('pre_get_posts', 'my_query_post_type'); 

https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

+0

Спасибо за помощь! Это сработало, и я вижу сообщение на странице сейчас. В режиме отладки я получаю это сообщение ... Неопределенные индекс: suppress_filters на линии 177 если (is_category() && ложных == $ query-> query_vars [ 'suppress_filters']) { –

+0

Я обновил мой ответ. Это должно избегать предупреждения. –

+0

Это сработало, спасибо! –