Gibt es eine Möglichkeit, eine 404-Seite anzuzeigen, wenn der aktuell angemeldete Benutzer nicht über die erforderliche Berechtigung zum Anzeigen der Seite verfügt? Ich suche nach einer PHP-Methode, so ähnlich
if( !current_user_can('administrator') ) { show_404(); exit(); }
Ich habe überlegt, eine Weiterleitung zu verwenden, möchte die URL jedoch beibehalten.
Antworten:
Ich konnte einen 404-Fehler anzeigen, indem ich den folgenden Code in meinem Header verwendete.
Um es aufzuschlüsseln
$wp_query->set_404()
:: teilt der wp_query mit, dass es sich um eine 404 handelt, ändert den Titelstatus_header()
: sendet einen HTTP-404-Headerget_template_part()
: zeigt die 404-Vorlage anquelle
http_status_code(404);
vor dem Einstellen der Vorlage verwenden, um sicherzustellen, dass der Header korrekt ist (was erheblich schneller ist als die WordPress-status_header( 404 );
Funktion). Wenn Sie mit dem Seitenrang befasst sind, sollten Sie auch eineDisallow
Regel in Ihre robots.txt einfügen, um anzuzeigen, dass es sich nicht um eine öffentliche Ressource handelt.Warum erstellen Sie keine Seite, auf der eine Fehlermeldung angezeigt wird, und leiten den Benutzer dann zu dieser Seite weiter? Hier ist ein einfacher Weg, dies zu erreichen:
Öffnen Sie die
404.php
Datei und fügen Sie diese Zeilen oben hinzu:Erstellen Sie eine Seite mit
404 Page
Vorlage. Leiten Sie dann Benutzer weiter:Der Grund, warum Sie eine Seite für eine 404-Anforderung verwenden sollten, ist: In WP 404-Seite ist tatsächlich eine Seite, die nicht vorhanden ist , WP muss vor dem Zurückgeben der 404-Seite nach dem gesamten Inhalt suchen, und diese Arbeit ist eine Verschwendung von Ressourcen. Verwenden Sie eine vorkonfigurierte Seite, mit der Sie Ihr Blog möglicherweise schneller ausführen können.
quelle
http_response_code(404); exit();
. Wenn Sie eine Seite möchten, verwenden Sie dieseget_template_part( 404 );
vor dem Beenden. Das ist auch viel schneller als jede WordPress-Funktionalität.Sie können diesen Code in die Datei 404.php im aktuell verwendeten Theme-Verzeichnis (wp-content / themes /..../ 404.php) schreiben :
Dieser Code muss am Anfang der Datei beginnen (ohne vorherige Zeichen) .
Link zum Original: So leiten Sie Ihre 404-Seite auf die Homepage in WordPress um
quelle
Location: xxx
Setzt einen 301-Header, der Crawlern mitteilt, dass tatsächlich eine gültige Ressource vorhanden ist, und beendet Ihr Ranking, wenn sie feststellen, dass keine vorhanden ist.Ich hatte eine ähnliche Anforderung, bei der Benutzer nicht auf die Seite author.php zugreifen dürfen, basierend auf der Rolle, in der sich ein Benutzer befindet. Ich registriere die Aktion template_redirect, um meine Prüfungen durchzuführen und zur Seite 404 umzuleiten, noch bevor die eigentliche Seite geladen wird.
Anmeldung:
Handler:
Wenn Sie nur das folgende Codefragment in der Mitte des Vorlagenteils verwenden, wurde die Seite möglicherweise bereits teilweise gerendert und Sie werden nicht auf eine 404-Seite umgeleitet. Also besser, es in der
template_redirect
Aktion zu tun -quelle