Mit der Veröffentlichung von WordPress 3.0 kam die Möglichkeit, Ihren WordPress-Themes „Custom Post Types“ hinzuzufügen, was ein sehr wertvolles Werkzeug ist und ich in vielen WordPress-Themes verwendet habe, die ich erstellt habe. Mittlerweile sind benutzerdefinierte Post-Typen extrem beliebt und werden in fast jedem WordPress-Theme verwendet. Aber jeder, der mit benutzerdefinierten Beitragstypen gearbeitet hat, ist wahrscheinlich auf die . gestoßen DReadful 404 nicht gefunden Fehler wenn Sie versuchen, auf einen Beitrag über den Beitragstyp an der einen oder anderen Stelle zuzugreifen. Glücklicherweise gibt es fast immer eine einfache Lösung, um diese Fehler zu beheben.
Unten habe ich einige der häufigeren Probleme aufgelistet, die Leute mit benutzerdefinierten Beitragstypen haben und warum sie diese Fehler möglicherweise erhalten. Hoffentlich helfen sie zumindest ein paar Leuten da draußen.
1. Überprüfen Sie Ihre Permalink-Einstellungen
Dies ist wahrscheinlich einer der häufigsten Gründe, warum Leute 404-Fehler bei ihren benutzerdefinierten Beitragstypen erhalten, und ich habe mich oft damit befasst. Ich habe viele Fixes gesehen, wie das Löschen der Rewrite-Regeln (was ich nicht empfehle), aber persönlich hatte ich das größte Glück mit den folgenden einfachen Fixes:
Lösung:
- Legen Sie Ihre benutzerdefinierte Permalink-Struktur fest (z. B. %postname%)
- Klicken Sie auf Speichern
- Prüfen Sie, ob Ihre einzelnen benutzerdefinierten Beitragsseiten 404-Fehlerseiten zurückgeben
- Wenn dies der Fall ist, gehen Sie zurück und ändern Sie die Permalinks auf die Standardeinstellungen und speichern Sie
- Versuchen Sie nun erneut, den benutzerdefinierten Permalink einzustellen und speichern Sie
Das Hin- und Hergehen hat normalerweise geholfen, meine Fehler zu beheben, und ich hatte mit dieser Methode viel Erfolg.
Auf einigen Servern funktioniert dies möglicherweise nicht, wenn Ihre Berechtigungen nicht richtig eingestellt sind, und Sie müssen Ihre .htaccess-Datei möglicherweise manuell aktualisieren. Um dies zu tun, müssen Sie sich über FTP oder SFTP bei Ihrer Site und den Browser in Ihr WordPress-Wurzelverzeichnis einloggen (derselbe Ort, an dem sich Ihre wp-config.php-Datei und Ihr wp-content-Ordner befinden). Hier sollten Sie eine Datei namens .htaccess finden, die Sie ändern können (wenn Sie sie nicht sehen, stellen Sie sicher, dass Ihr FTP-Programm die Option zum Anzeigen versteckter Dateien aktiviert hat, und wenn es einfach keine gibt, erstellen Sie eine). Stellen Sie nun sicher, dass die Datei den WordPress-Kerncode enthält, wie in der erwähnt WordPress-Dokumente, die so aussieht:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Wichtig: Wenn Sie eine vorhandene .htaccess-Datei ändern, stellen Sie sicher, dass Sie die Datei zuerst auf Ihrem Computer sichern, nur für den Fall, dass Sie etwas durcheinander bringen.
2. Auf Slug-Konflikte prüfen (mit einer Seite mit demselben Slug wie Ihr Beitragstyp)
Eine andere Sache, die einen 404-Fehler verursachen kann, ist, dass Sie eine Hauptseite haben, auf der Ihr Beitrag vom Post-Typ angezeigt wird und die denselben Slug wie Ihr tatsächlicher Slug-Typ des Post-Typs hat. Wenn Sie beispielsweise einen Beitragstyp namens „Portfolio“ haben und auch eine Hauptseite „Portfolio“ mit dem Slug „Portfolio“ haben (mit anderen Worten, um auf einen Portfolio-Beitrag zuzugreifen, gehen Sie zu site.com/portfolio/sample- post) erzeugt dies einen Konflikt, der 404-Fehler in Ihren einzelnen Post-Typ-Posts verursacht. Aus diesem Grund finden Sie oft, dass der Portfolio-Post-Typ die Slug-„Projekte“ oder „Portfolio-Element“ für die einzelne Slug verwendet.
Lösung:
- Sie können den Seitennamen ändern, damit er sich vom benutzerdefinierten Beitragstyp unterscheidet
- Sie können Ihren benutzerdefinierten Post-Typ-Slug ändern, indem Sie den Rewrite-Parameter ändern, wenn Registrieren Ihres benutzerdefinierten Beitragstyps
3. Auto-Flush-Rewrite-Regeln (für Entwickler)
Eine weitere Ursache für 404-Fehler ist, dass Sie immer dann, wenn ein neuer Beitragstyp registriert wird, Ihre Rewrite-Regeln in WordPress „spülen“ müssen. Gehen Sie dazu zu Einstellungen > Permalinks und klicken Sie auf die Schaltfläche Speichern (erwähnt im ersten Abschnitt dieses Beitrags).
Wenn Sie an einem benutzerdefinierten Thema oder Plugin mit registrierten Beitragstypen arbeiten, sollten Sie die Umschreibregeln für Ihren Endbenutzer automatisch leeren, wenn er Ihr Thema oder Plugin aktiviert, um 404-Fehler zu vermeiden. Unten ist ein Beispiel für den Code, den Sie verwenden können:
// Code for themes
add_action( 'after_switch_theme', 'flush_rewrite_rules' );
// Code for plugins
register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );
register_activation_hook( __FILE__, 'myplugin_flush_rewrites' );
function myplugin_flush_rewrites() {
// call your CPT registration function here (it should also be hooked into 'init')
myplugin_custom_post_types_registration();
flush_rewrite_rules();
}
Haben Sie einen anderen Fehler oder eine Lösung?
Wenn Sie einen anderen Fehler haben oder eine bessere Lösung als meine haben, kommentieren Sie bitte unten und lassen Sie es mich wissen. Es wird nicht nur mir helfen, sondern es wird wahrscheinlich auch anderen Leuten helfen, die nach einer Lösung für ihr Problem suchen. Vielen Dank!