Wie man eine Umleitung zu einer anderen Seite manuell austriggers, ohne die URL-Adresse zu ändern?

Ich versuche, es so zu machen, wenn ein normaler Benutzer einen Platz eingibt, den sie nicht sein sollten, dann sollten sie auf die Seite 404 umgeleitet werden, aber die URL muss gleich bleiben, als ob sie eine ungültige Adresse eingegeben haben, also gibt es Keine Möglichkeit zu wissen, durch den Blick auf die Adressleiste, dass der Benutzer auf eine Admin-Seite gestolpert ist.

Da die Umleitung nicht immer stattfinden sollte, kann sie nicht ausgeführt werden. Obwohl .htaccess und zur Zeit allow_url_include deaktiviert sind, habe ich gelesen, dass es dringend empfohlen wird, dass es so bleibt, damit ich include() mit einem exit .

update1: require() und require_once() scheinen zu funktionieren, fügen aber immer noch ein / am Ende der URL hinzu.

Solutions Collecting From Web of "Wie man eine Umleitung zu einer anderen Seite manuell austriggers, ohne die URL-Adresse zu ändern?"

Sie können versuchen, den template_redirect Hook zu verwenden, um Ihre Bedingungen zu überprüfen, und dann die Variable wp_query->is_404 wie wp_query->is_404 :

 function wpse202198_set_404(){ global $post; global $wp_query; if( $post->ID == PAGE_ID_OF_PROTECTED_PAGE ){ $wp_query->is_404 = true; return; } } add_action( 'template_redirect', 'wpse202198_set_404' );