404 ошибка при переходе на страницу рубрик?
Добрый день.
Имеется сайт на WP с самописной темой (не моей). Если в настройке постоянных ссылок указать Произвольно -> /%category%/%postname%/, и создать запись в любой рубрике (например /news/one/) , то появляется 404 ошибка и на саму запись, и при переходе на страницу рубрики /news/. При этом при переходе на страницу рубрики /category/news отображается как надо.
Если в настройке постоянных ссылок указать любой другой вид, то и запись отдаётся нормально.
Никаких дополнительных таксономий на сайте нет, создан только один кастомный тип записи. Если сменить тему, то проблема исчезает, значит проблема именно в теме. Но дело в том, что тема самописаная, её автор недоступен.
Подскажите - в какую сторону копать для решения данной проблемы?
Дополнительно:
Сменить тему на нормальную, естественно.
Подскажите - в какую сторону копать для решения данной проблемы?
Я думаю, что стоит начать с отладки WordPress.
Результат?
Код cpt
add_action('init', 'register_post_types'); function register_post_types() { register_post_type('services', [ 'label' => 'services', 'labels' => [ 'name' => 'Услуги', 'singular_name' => 'Услуга', 'add_new' => 'Добавить услугу', 'add_new_item' => 'Добавление услуги', 'edit_item' => 'Редактирование услуги', 'new_item' => 'Новая услуга', 'view_item' => 'Смотреть услугу', 'search_items' => 'Искать услугу', 'not_found' => 'Не найдено', 'not_found_in_trash' => 'Не найдено в корзине', 'parent_item_colon' => '', 'menu_name' => 'Список услуг', ], 'description' => '', 'public' => true, // 'publicly_queryable' => null, // 'exclude_from_search' => null, // 'show_ui' => null, // 'show_in_nav_menus' => null, 'show_in_menu' => true, // 'show_in_admin_bar' => null, 'show_in_rest' => null, 'rest_base' => null, 'menu_position' => null, 'menu_icon' => null, //'capability_type' => 'post', //'capabilities' => 'post', //'map_meta_cap' => null, 'hierarchical' => false, 'supports' => ['title', 'custom-fields', 'page-attributes'], // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats' 'taxonomies' => [], 'has_archive' => false, 'rewrite' => array('slug' => '/', 'with_front' => false), 'query_var' => true, ]); } |
add_action('init', 'register_post_types'); function register_post_types() { register_post_type('services', [ 'label' => 'services', 'labels' => [ 'name' => 'Услуги', 'singular_name' => 'Услуга', 'add_new' => 'Добавить услугу', 'add_new_item' => 'Добавление услуги', 'edit_item' => 'Редактирование услуги', 'new_item' => 'Новая услуга', 'view_item' => 'Смотреть услугу', 'search_items' => 'Искать услугу', 'not_found' => 'Не найдено', 'not_found_in_trash' => 'Не найдено в корзине', 'parent_item_colon' => '', 'menu_name' => 'Список услуг', ], 'description' => '', 'public' => true, // 'publicly_queryable' => null, // 'exclude_from_search' => null, // 'show_ui' => null, // 'show_in_nav_menus' => null, 'show_in_menu' => true, // 'show_in_admin_bar' => null, 'show_in_rest' => null, 'rest_base' => null, 'menu_position' => null, 'menu_icon' => null, //'capability_type' => 'post', //'capabilities' => 'post', //'map_meta_cap' => null, 'hierarchical' => false, 'supports' => ['title', 'custom-fields', 'page-attributes'], // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats' 'taxonomies' => [], 'has_archive' => false, 'rewrite' => array('slug' => '/', 'with_front' => false), 'query_var' => true, ]); }
Т.е. убирая данный cpt - записи, и рубрики начинают работать нормально, отдаётся верный шаблон Подозреваю, что проблема в rewrite правилах. Буду разбираться дальше.
'rewrite' => array('slug' => '/', 'with_front' => false),
Попробуйте так:
'rewrite' => array('slug' => 'services', 'with_front' => false), |
'rewrite' => array('slug' => 'services', 'with_front' => false),
Заказчику вобщем-то эти подробности не важны (а по структуре url - требование seo-специалиста), он пришел с проблемой сломавшегося сайта после другого специалиста. Так что, думаю, возражений не будет.
1. Хранить некоторый список слагов в txt файле, чтобы не создать запись с аналогичным слагом :)
2. Писать код плагина, который будет иметь свою админку, где перечислить список слагов, которые нельзя будет указать при сохранение записей (или хук wp_insert_post_data, или js код на странице записи).
Проблема 404 была при указание rewrite в cpt:
'rewrite' => array('slug' => '/', 'with_front' => false),
Проблема 404 была решена так:
'rewrite' => array('slug' => 'services', 'with_front' => false), |
'rewrite' => array('slug' => 'services', 'with_front' => false),
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
