Страницы пользовательского типа записей "не найдены"

16 сент. 2015 г., 16:03:38
Просмотры: 63.5K
Голосов: 29

Я создал два новых пользовательских типа записей, используя код, который успешно работал в других проектах без проблем. Первый называется top_charts, второй case_studies, и оба корректно отображаются в меню администратора, и я могу создавать новые записи.

К сожалению, новые записи не отображаются. Я просто получаю ответ 404.php.

Я создал archive-top_charts.php, чтобы проверить, смогу ли я что-то отобразить, но я вижу ответ 404.php "страница не найдена".

Изначально я назвал пользовательские записи top-charts и case-studies, но подумал, что дефис мог быть проблемой, поэтому переименовал их, используя нижнее подчеркивание. Это не помогло.

Я попробовал пересохранить постоянные ссылки, но ничего не изменилось. Мой файл .htaccess выглядит так, как и должен (и другие страницы работают нормально). Что еще можно проверить?

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

использовали ли вы flush_rewrite_rules(false); при регистрации типа записи? Подробнее по ссылке http://nooshu.com/page-not-found-with-custom-post-types

jas jas
16 сент. 2015 г. 16:09:17

Спасибо. Это исправило ссылку на саму запись, но не на страницу archive-top_charts.php. Странно!

Django Reinhardt Django Reinhardt
16 сент. 2015 г. 16:15:09

Просто добавляю часть ответа, которая может помочь другим пользователям, и попробуйте также поискать решение для архива.

jas jas
16 сент. 2015 г. 16:18:23

нашел простое решение этой ошибки в другом посте на stack: Страница с постоянной ссылкой пользовательского типа записи не найдена

dnll dnll
31 июл. 2017 г. 14:21:06
Все ответы на вопрос 5
2
44

Вам не нужно редактировать PHP-код!

Хотя это можно сделать в функции, которая регистрирует ваш пользовательский тип записи, как в других ответах, вы также можете выполнить это в меню настроек, избегая изменений в PHP-коде:

Чтобы сбросить правила перезаписи или постоянные ссылки WordPress (обычно это нужно делать вручную для новых пользовательских типов записей) из админ-панели:

  1. В главном меню найдите "Настройки > Постоянные ссылки".
  2. Прокрутите вниз при необходимости и нажмите "Сохранить изменения".
  3. Правила перезаписи и постоянные ссылки будут сброшены.

Это так просто!

Изображение страницы сохранения постоянных ссылок справочный материал

6 янв. 2017 г. 20:23:34
Комментарии

Я думаю, мне также понадобился параметр has_archive, но хорошо знать, что можно принудительно обновить через меню.

Django Reinhardt Django Reinhardt
9 янв. 2017 г. 13:44:31

Есть ли способ автоматически сохранять изменения (обновлять) постоянные ссылки, вместо того чтобы каждый раз заходить в Настройки > Постоянные ссылки при добавлении категории/термина для произвольного типа записи? Как это смогут сделать не-администраторы, если у них нет доступа к настройкам? Можно ли вызвать хук при добавлении новой категории, чтобы автоматически обновить постоянные ссылки?

Ryan Coolwebs Ryan Coolwebs
2 июн. 2017 г. 05:08:07
2
38

Для исправления проблемы с ненахождением пользовательских записей используйте следующий код в вашем файле functions.php:

flush_rewrite_rules( false );

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

Для получения дополнительной информации перейдите по этой ссылке

Что касается проблемы с отсутствием файла archive-top_charts.php, убедитесь, что при регистрации типа записи у вас указано 'has_archive' => true.

16 сент. 2015 г. 16:18:27
Комментарии

отлично, что вы нашли 'has_archive' :)

jas jas
16 сент. 2015 г. 16:33:10

почему это всё ещё работает? и почему это не считается багом в wordpress?

Cerveser Cerveser
4 сент. 2020 г. 21:09:00
0

Я понимаю, что это уже поздний этап (и может быть не связано с проблемой), но хотел указать другим на возможную проблему.

В моем случае я установил перезапись таксономии как tools, а перезапись типа контента — аналогично. В результате это никогда не работало правильно из-за конфликта. К сожалению, нет механизма обнаружения таких ситуаций, поэтому я решил просто предупредить других об этом.

25 мая 2019 г. 04:45:07
0

Я просто добавил эту строку для правил перезаписи, это и было причиной в моем случае. После комментирования или удаления строка решила проблему, но вы также можете установить значение true.

flush_rewrite_rules( true );
15 дек. 2020 г. 16:57:46
1
-1

В моём случае не хватало прав в папке разработки, поэтому файл .htaccess не мог быть создан или изменён.

Поэтому ручной сброс или сохранение изменений в настройках постоянных ссылок WordPress не помогали.

Решение заключалось в том, чтобы создать файл .htaccess вручную.

4 янв. 2020 г. 14:47:09
Комментарии

Я последовал совету @David Salcer, создал файл htaccess, и это сработало.

ca hoang ca hoang
2 июн. 2023 г. 06:57:09