2015-08-07 1 views
0

Я создаю свой первый плагин и содержит настраиваемый тип сообщений (CPT), называемый «функция». Я пытаюсь получить доступ к странице «архив» для этого CPT, но я получаю «ошибку 404», используя любую конфигурацию Permalink, кроме стандартной.Wordpress - Архив Пользовательский тип сообщения работает только при настройке по умолчанию по умолчанию

Когда я использую конфигурацию «По умолчанию» для permalinks, «архив» возвращается из шаблона, а не из моего плагина. Что я делаю не так?

function fmp_create_post_feature() { 
register_post_type('feature', 
    array(
     'labels' => array(
      'name' => 'Features' , 
      'singular_name' => 'Feature', 
      'edit_item' => __('Edit') . ' Feature', 
      'add_new' => __('Add') . ' nova', 
      'add_new_item' => __('Add').' nova Feature', 
      'menu_name' => 'Feature with Modal Popup', 
      'all_items' => 'Features', 
      'rewrite' => array('slug' => 'feature'), 
    ), 
     'public' => true, 
     'menu_icon' => 'dashicons-desktop', 
     'supports' => array(
      'title', 
      'editor', 
      'thumbnail' 
     ), 
     'taxonomies' => array(
      'feature', 
     ), 

) 
); 
flush_rewrite_rules(); 
} 

add_action('init', 'fmp_create_post_feature'); 

Код выше регистрации CPT и один ниже регистрации систематики

add_action('init', 'fmp_create_tax'); 

function fmp_create_tax() { 
register_taxonomy(
    'feature', 
    array(
     'label' => 'Feature', 
     'rewrite' => array('slug' => 'feature'), 
     'hierarchical' => true, 
    ) 
); 
} 

ответ

0

Это потому, что вы не определены 'has_archive' => true, при регистрации своего пользовательских почтового типа.

Как указано в WordPress.

has_archive (boolean или string) (необязательно) Включает архивы типа post.
По умолчанию используется $ post_type в качестве архивного слизня. По умолчанию: ложные

Примечание:

будет генерировать соответствующие правила перезаписи, если перезапись включена. Также используйте переписать, чтобы изменить используемый слиз.

Так ваш массив типа регистр пост будет

register_post_type('feature', 
    array(
     'labels' => array(
      'name' => 'Features' , 
      'singular_name' => 'Feature', 
      'edit_item' => __('Edit') . ' Feature', 
      'add_new' => __('Add') . ' nova', 
      'add_new_item' => __('Add').' nova Feature', 
      'menu_name' => 'Feature with Modal Popup', 
      'all_items' => 'Features', 
      'rewrite' => array('slug' => 'feature'), 
    ), 
     'public' => true, 
     'has_archive'  => true, 
     'menu_icon' => 'dashicons-desktop', 
     'supports' => array(
      'title', 
      'editor', 
      'thumbnail' 
     ), 
     'taxonomies' => array(
      'feature', 
     ), 

) 
); 
+0

Noman, спасибо за ответ. Вы абсолютно правы! когда я определяю «has_archive» true, он работает отлично. –

+0

@ AndréRocha, пожалуйста, примите мой ответ, если он вам поможет? – Noman