Ошибка 404 на страницах категорий и меток
Я столкнулся со странной проблемой - получаю ошибки 404 на страницах категорий блога и страницах меток. Я использую собственную тему, которая включает:
- tag.php
- category.php
- archive.php
- home.php
- index.php и
- 404.php
Архив блога работает нормально, но когда я пытаюсь загрузить страницы меток или категорий, меня перенаправляет на шаблон 404.php.
Также есть еще одна странная проблема: если я удаляю файл 404.php из папки темы, ссылки на категории и метки работают нормально и загружают контент из archive.php, но в заголовке страницы отображается "страница не найдена", а к тегу body добавляется класс error404.
Вот список действий, которые я уже попробовал для решения проблемы:
- Обновил структуру постоянных ссылок
- Применил базовые URL для категорий и меток
- Переключился на тему twentyseventeen, в которой все работает нормально
- Весь код в файлах header.php и footer.php соответствует рекомендациям WordPress
Пожалуйста, подскажите решение, которое может помочь решить эту проблему, так как все работает нормально без 404.php. Блоги и категории на сайте импортированы с другого сайта с помощью WordPress импортера.
Обновление вопроса: Почему WordPress перенаправляет на 404.php, даже если файлы category.php, archive.php и index.php присутствуют в папке темы WordPress при переходе на страницы категорий или меток?

Я знаю, что это старый вопрос, но у меня была такая же проблема в унаследованной теме, и в поисках ответов я наткнулся на этот вопрос.
В моем конкретном случае я обнаружил следующий PHP-код в файле темы function.php
:
if( is_category() || is_date() || is_author() ) {
global $wp_query;
$wp_query->set_404(); // перенаправляет на страницу 404
}
Этот код перенаправляет любые архивные страницы категорий, дат или авторов на ошибку 404 (что вызывает шаблон страницы 404 вашей темы). Возможно, вам стоит поискать что-то подобное в вашей теме (если вы еще не разобрались с этим).

В моем случае проблема была не в теме, а в этом плагине https://wordpress.org/plugins/smart-archive-page-remove, который кто-то установил. Тем не менее, ваш ответ очень помог найти причину проблемы

У меня была такая же проблема. Однако я добавил следующий код в файл functions.php (спасибо wpbeginner.com), чтобы мои пользовательские типы записей отображались в рубриках. WordPress не отображает пользовательские типы записей в рубриках, пока мы не добавим следующий фильтр.
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
if( is_category() ) {
$post_type = get_query_var('post_type');
if($post_type)
$post_type = $post_type;
else
$post_type = array('nav_menu_item', 'post', 'your_post_type_name'); // не забудьте добавить nav_menu_item для работы меню!
$query->set('post_type',$post_type);
return $query;
}
}

Перейдите в админ-панель WordPress по пути Настройки > Постоянные ссылки. Убедитесь, что базой для рубрик является "category", а для меток — "tag" (если у вас нет каких-то очень странных специальных настроек) и просто нажмите кнопку "Сохранить изменения", даже если ничего не меняли. Нажатие кнопки может заставить страницы рубрик и меток снова работать.
Не забудьте очистить кеш WordPress для тестирования.

Привет, Вишал, пожалуйста, прочитай вопрос еще раз, я уже пробовал это.

Не мог бы ты поделиться ссылкой на свой сайт, чтобы я мог проверить?


Я проверил в консоли и обнаружил одну ошибку: "Uncaught TypeError: Cannot read property 'getContext' of null". Пожалуйста, правильно закройте тег canvas.

Да, я тоже заметил это, но частичный шаблон canvas вызывается только в файле frontpage.php, мы нигде больше на сайте его не используем. Кроме того, весь HTML DOM вообще не загружается, вместо этого происходит перенаправление на страницу 404.php.

Пожалуйста, отправьте мне учетные данные wp-admin по email.
