2015-11-17 7 views
2

Я знаю, что есть много сообщений и решений об этом. Но моя проблема не устранена этими решениями. Пожалуйста, проверьте здесь один раз.wordpress custom post type archive page issue

У меня есть 5 разных типов сообщений. Поэтому я использую эти коды в своем файле functions.php для отображения пользовательских типов сообщений на странице archive.php для категории &.

// Add custom post types to archives 
function custom_post_archive($query) { 
    if ($query->is_archive) 
     $query->set('post_type', array('nav_menu_item', 'post', 'post_type_1', 'post_type_2', 'post_type_3', 'post_type_4', 'post_type_5')); 
    remove_action('pre_get_posts', 'custom_post_archive'); 
} 
add_action('pre_get_posts', 'custom_post_archive'); 

// Add custom post types to tag 
function custom_post_tag($query) { 
    if ($query->is_tag) 
     $query->set('post_type', array('nav_menu_item', 'post', 'post_type_1', 'post_type_2', 'post_type_3', 'post_type_4', 'post_type_5')); 
    remove_action('pre_get_posts', 'custom_post_tag'); 
} 
add_action('pre_get_posts', 'custom_post_tag'); 

После использования этого Моя страница архива шоу категория пост & сообщений по тегу отлично. Существует не другой вопрос .. но когда я открываю какой тип архива пост .. пример:

http://exmple.com/post_type_1/ или http://exmple.com/post_type_3/

все отображения всех сообщений от всех типов пост !!!

Также в моем типе сообщений типа сообщений беспорядок и показать все сообщения из всех сообщений типа шоу под постов & другие 5 типа сообщения.

Так что я хочу решение или предложение исправить это. Пожалуйста помоги.

ответ

2

Извините и благодарите. Я исправил проблему, написав еще один код.

Вот код:

function my_post_types($query) { 
    if(is_category() || is_tag() && empty($query->query_vars['suppress_filters'])) { 
     //$post_types = get_post_types('remote_exploit', 'webapp_exploit', 'localpriesc_exploit', 'pocnddos', 'shellcode_exploit', 'securiy_papers', 'cheat_sheet'); 
     // $query->set('post_type', $post_types); 
     $query->set('post_type', array('nav_menu_item', 'post', 'remote_exploit', 'webapp_exploit', 'localpriesc_exploit', 'pocnddos', 'shellcode_exploit', 'securiy_papers', 'cheat_sheet')); 
     return $query; 
    } 
} 
add_filter('pre_get_posts', 'my_post_types'); 

Теперь все работает отлично.

Большое спасибо.