Пользовательские страницы типа «не найдены»


17

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

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

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

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

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


1
Вы использовали flush_rewrite_rules (false); в реестре пост типа? для более подробной информации перейдите по этой ссылке nooshu.com/page-not-found-with-custom-post-types
JAS

Благодарю. Это исправило ссылку на сам пост, но не на archive-top_charts.phpстраницу. Странный!
Джанго Рейнхардт

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

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

Ответы:


18

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

flush_rewrite_rules( false );

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

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

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


здорово, что вы нашли 'has_archive' :)
jas

27

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

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

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

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

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

изображение страницы сохранения постоянных ссылок ссылка


2
Я считаю, что мне тоже нужно has_archive, но приятно знать, что вы можете вызвать флеш через меню.
Джанго Рейнхардт

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

0

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

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


-1

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

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

Решением было создать файл .htaccess самостоятельно

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.