CPT WordPress вызывает 404 ошибки при добавлении категорий в постоянные ссылки

#php #wordpress #http-status-code-404 #permalinks

Вопрос:

Я создал пользовательский тип записи (CPT) и таксономии для галереи, которая работает нормально.

Проблема в постоянных ссылках для сообщений, не относящихся к CPT, которые переходят на 404, когда я добавляю /%категорию%/ в структуру постоянных ссылок.

Постоянные ссылки работают, когда (1) я удаляю пользовательскую таксономию из functions.php, или (2) когда я удаляю /%категория%/ из постоянных ссылок. Поэтому я знаю, что проблема связана с CPT или/и кодом таксономии в functions.php но я не вижу в этом проблемы. Мы очень ценим вашу помощь.

 /* Custom Post Type - Gallery */ add_action( 'init', 'add_gallery_post_type' ); function add_gallery_post_type() {  register_post_type(  'zm_gallery',  array(  'labels' =gt; array(  'name' =gt; __( 'The Gallery' ),  'singular_name' =gt; __( 'The Gallery' ),  'add_new_item' =gt; __( 'Add New Photograph' ),  'all_items' =gt; __( 'All Images' ),  ),  'public' =gt; true,  'has_archive' =gt; true,  'rewrite' =gt; array( 'slug' =gt; 'gallery-item' ),  'supports' =gt; array( 'title' ),  'menu_position' =gt; 4,  'publicly_queryable' =gt; true,  'show_ui' =gt; true,  'show_in_menu' =gt; true,  'query_var' =gt; true,  'menu_icon' =gt; 'dashicons-camera',  'capability_type' =gt; 'post',   )  ); }   /* Gallery Taxonomies */  function be_register_taxonomies() {   $taxonomies = array(  array(  'slug' =gt; 'location',  'single_name' =gt; 'Location',  'plural_name' =gt; 'Locations',  'post_type' =gt; 'zm_gallery',  ),  array(  'slug' =gt; 'circa',  'single_name' =gt; 'Circa',  'plural_name' =gt; 'Circas',  'post_type' =gt; 'zm_gallery',  ),  array(  'slug' =gt; 'era',  'single_name' =gt; 'Era',  'plural_name' =gt; 'Era',  'post_type' =gt; 'zm_gallery',  ),  );   foreach ( $taxonomies as $taxonomy ) {  $labels = array(  'name' =gt; $taxonomy['plural_name'],  'singular_name' =gt; $taxonomy['single_name'],  'search_items' =gt; 'Search ' . $taxonomy['plural_name'],  'all_items' =gt; 'All ' . $taxonomy['plural_name'],  'parent_item' =gt; 'Parent ' . $taxonomy['single_name'],  'parent_item_colon' =gt; 'Parent ' . $taxonomy['single_name'] . ':',  'edit_item' =gt; 'Edit ' . $taxonomy['single_name'],  'update_item' =gt; 'Update ' . $taxonomy['single_name'],  'add_new_item' =gt; 'Add New ' . $taxonomy['single_name'],  'new_item_name' =gt; 'New ' . $taxonomy['single_name'] . ' Name',  'menu_name' =gt; $taxonomy['plural_name'],  );   $rewrite = isset( $taxonomy['rewrite'] ) ? $taxonomy['rewrite'] : array( 'slug' =gt; $taxonomy['slug'] );  $hierarchical = isset( $taxonomy['hierarchical'] ) ? $taxonomy['hierarchical'] : true;   register_taxonomy(  $taxonomy['slug'],  $taxonomy['post_type'],  array(  'hierarchical' =gt; $hierarchical,  'labels' =gt; $labels,  'show_ui' =gt; true,  'query_var' =gt; true,  'rewrite' =gt; $rewrite,  )  );  }  }  add_action( 'init', 'be_register_taxonomies' );  

Комментарии:

1. Я протестировал ваш код и не вижу проблемы. Вы сохранили постоянные ссылки после добавления пользовательского типа записи?

2. Чтобы проверить, я что-то пробую или что-то выключаю и т. Д., Затем я меняю постоянные ссылки на простые, а затем возвращаюсь к пользовательской /%категории%/%имени сообщения%/, А затем повторяю попытку. Если я не помещу категорию /%%/ в постоянную ссылку, это сработает.

Ответ №1:

Хорошо. Моя вина. Проблема заключалась в том, что основной категорией по умолчанию для должностей было установлено значение «Общие». Когда я создавал CPT, я также создал категорию под названием «Общие». WordPress начал путаться. Я переименовал основную категорию сообщений в «Новости», и теперь все работает нормально.