Benutzerdefinierte Beitragstypseiten werden "nicht gefunden"

17

Ich habe zwei neue benutzerdefinierte Post-Typen mit Code erstellt, den ich in anderen Projekten ohne Probleme erfolgreich verwendet habe. Der erste wird aufgerufen top_charts, der andere case_studiesund beide werden im Admin-Menü korrekt angezeigt und ich kann neue Beiträge erstellen.

Leider nicht erscheinen die neuen Beiträge. Ich bekomme nur eine 404.phpAntwort.

Ich habe erstellt ein , archive-top_charts.phpum zu sehen , ob ich etwas bekommen kann zu erscheinen, aber ich sehe404.php Antwort "Seite nicht gefunden" angezeigt.

Ich habe die benutzerdefinierten Beiträge top-chartsund ursprünglich benanntcase-studies , aber ich dachte, der Bindestrich könnte das Problem gewesen sein, und habe sie daher umbenannt, um stattdessen einen Unterstrich zu verwenden. Es hat nicht geholfen.

Ich habe meine Permalinks versucht, wieder zu speichern, aber nichts hat sich geändert. Meine .htaccess Seite aussieht wie das, was man erwarten würde, auch (und anderen Seiten funktioniert gut). Was kann ich sonst noch überprüfen?

Django Reinhardt
quelle
1
Haben Sie flush_rewrite_rules (false) verwendet? In der Art des Einschreibens? Weitere Details folgen Sie diesem Link nooshu.com/page-not-found-with-custom-post-types
jas
Vielen Dank. Das hat den Link zum Post selbst gefixt, aber nicht die archive-top_charts.phpSeite. Seltsam!
Django Reinhardt
Fügen Sie einfach einen Teil davon als Antwort hinzu, um anderen Benutzern zu helfen, und versuchen Sie, auch nach Archiv zu suchen.
jas
fand die einfache Antwort auf diesen Fehler in einem anderen
Stapelbeitrag

Antworten:

18

Zum Korrigieren von nicht gefundenen benutzerdefinierten Posts verwenden Sie bitte den folgenden Code in Ihrem functions.php:

flush_rewrite_rules( false );

Sie sollten dies nur als vorübergehende Maßnahme tun, da es sonst bei jedem Seitenaufruf ausgeführt wird.

Für weitere Informationen bitte folgen Sie diesem Link

archive-top_charts.phpAchten Sie 'has_archive' => truebei der Registrierung Ihres Beitragstyps darauf , dass das nicht angezeigt wird .

jas
quelle
toll, dass du 'has_archive' gefunden hast :)
jas
25

Sie müssen Ihren PHP-Code nicht bearbeiten!

Während Sie dies in der Funktion tun können, die Ihren benutzerdefinierten Beitragstyp wie die anderen Antworten registriert, können Sie dies auch im Einstellungsmenü tun, um zu vermeiden, dass Sie Ihren PHP-Code berühren:

So leeren Sie WordPress-Umschreiberegeln oder -Permalinks aus dem Dashboard:

  1. Im Hauptmenü finden Sie "Einstellungen> Permalinks".
  2. Scrollen Sie nach unten und klicken Sie auf "Änderungen speichern".
  3. Rewrite-Regeln und Permalinks werden gelöscht.

So einfach ist das!

Bild des Sparens permalinks Seite Referenz

Danny
quelle
2
Ich glaube, ich brauchte es auch has_archive, aber gut zu wissen, dass Sie einen Flush durch das Menü erzwingen können.
Django Reinhardt
1
Gibt es eine Möglichkeit, Änderungen an (Aktualisierungs-) Permalinks automatisch zu speichern, anstatt jedes Mal, wenn eine CPT-Kategorie / ein CPT-Begriff hinzugefügt wird, zu Einstellungen> Permalinks zu wechseln? Wie können Nicht-Administratoren dies tun, wenn sie keinen Zugriff auf die Einstellungen haben? Kann ein Hook aufgerufen werden, wenn eine neue Kategorie hinzugefügt wird, um Permalinks automatisch zu löschen?
Ryan Coolwebs
0

Mir ist klar, dass dies zu spät im Spiel ist (und möglicherweise nicht das damit verbundene Problem ist), aber ich wollte andere auf ein mögliches Problem hinweisen.

In meinem Fall hatte ich meine Taxonomie auf Tools und den Inhaltstyp auf dasselbe festgelegt. Daher würde es nie richtig funktionieren, da es ein Konflikt war. Leider gibt es keine Erkennung für so etwas, also dachte ich, ich würde es nur auf andere hinweisen.

shaneonabike
quelle