Niestandardowe strony typu posta „nie znaleziono”


17

Utworzyłem dwa nowe typy niestandardowych postów, używając kodu, który z powodzeniem wykorzystałem w innych projektach bez problemu. Pierwszy nazywa top_chartssię drugi case_studies, a oba pojawiają się poprawnie w menu administratora i mogę tworzyć nowe posty.

Niestety nowe posty nie pojawiają się. Właśnie dostaję 404.phpodpowiedź.

Stworzyłem, archive-top_charts.phpaby zobaczyć, czy mogę coś wyświetlić, ale widzę404.php „Nie znaleziono strony”.

Pierwotnie nazwałem niestandardowe posty top-chartsicase-studies , ale myślałem, że mógł to być problem, dlatego przemianowałem je na podkreślenie. To nie pomogło.

Próbowałem ponownie zapisać moje Permalinki, ale nic się nie zmieniło. Moja strona .htaccess również wygląda tak, jak można się spodziewać (a inne strony działają dobrze). Co jeszcze mogę sprawdzić?


1
czy użyłeś flush_rewrite_rules (false); w rejestrze typu post? po więcej szczegółów skorzystaj z tego linku nooshu.com/page-not-found-with-custom-post-types
jas

Dzięki. To naprawiło link do samego postu, ale nie do archive-top_charts.phpstrony. Dziwne!
Django Reinhardt,

Wystarczy dodać część odpowiedzi, która może pomóc innym użytkownikom i spróbować poszukać archiwum.
jas

znalazłem prostą odpowiedź na ten błąd w innym poście stosu: Niestandardowy typ
linku

Odpowiedzi:


19

Aby naprawić niestandardowy post nie został znaleziony, użyj poniższego kodu w functions.php:

flush_rewrite_rules( false );

Powinieneś to zrobić tylko jako środek tymczasowy, w przeciwnym razie będzie działać przy każdym ładowaniu strony.

Aby uzyskać więcej informacji, kliknij ten link

Jeśli chodzi o archive-top_charts.phpnie pojawienie się, upewnij się, że masz to 'has_archive' => truepodczas rejestracji typu posta.


świetnie, że znalazłeś 'has_archive' :)
jas

27

Nie musisz edytować kodu php!

Chociaż możesz to zrobić w funkcji, która rejestruje Twój niestandardowy typ postu, podobnie jak inne odpowiedzi, możesz to również zrobić w menu ustawień, unikając w ten sposób dotykania kodu php:

Aby opróżnić WordPress przepisać reguły lub łącza bezpośrednie (zwykle należy to zrobić ręcznie dla nowych niestandardowych typów postów) z pulpitu nawigacyjnego:

  1. W menu głównym znajdź „Ustawienia> Permalinki”.
  2. W razie potrzeby przewiń w dół i kliknij „Zapisz zmiany”.
  3. Przepisz reguły i permalinki zostaną opróżnione.

To takie proste!

obraz zapisywania strony permalinks odniesienie


2
Myślę, że ja też potrzebowałem has_archive, ale dobrze wiedzieć, że możesz wymusić kolor w menu.
Django Reinhardt

1
Czy istnieje jakiś sposób automatycznego zapisywania zmian w (aktualizowanych) połączeniach bezpośrednich zamiast przechodzenia do opcji Ustawienia> Łącza bezpośrednie za każdym razem, gdy dodawana jest kategoria / termin CPT? Na przykład, w jaki sposób nie-administrator będzie mógł to zrobić, jeśli nie będzie miał dostępu do ustawień? Czy można automatycznie wywołać hak przy dodawaniu nowej kategorii do automatycznego opróżniania permalinków?
Ryan Coolwebs

0

Zdaję sobie sprawę, że jest to późno w grze (i może nie być to związany z tym problem), ale chciałem wskazać innym możliwym problem.

W moim przypadku zmieniłem przepisywanie taksonomii na narzędzia, a typ treści przepisałem na to samo. Dlatego nigdy nie zadziałałoby prawidłowo, ponieważ był konfliktem. Niestety nie ma wykrycia czegoś takiego, więc pomyślałem, że po prostu zwrócę na to uwagę innym.


-1

W moim przypadku brakowało praw w moim folderze programistycznym, więc plik .htaccess nie mógł zostać utworzony reklamą lub zmodyfikowany.

Ręczne spłukiwanie lub zapisywanie zmian w Permalinkach WP nie pomagało.

Rozwiązaniem było samodzielne utworzenie pliku .htaccess

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.