#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 начал путаться. Я переименовал основную категорию сообщений в «Новости», и теперь все работает нормально.