Ich möchte alle nicht angemeldeten Benutzer auf eine bestimmte Seite redirect, wenn sie direkt versuchen, auf Folgendes zuzugreifen:
Ich versuche, diesen Code in der functions.php
untergeordneten Themas zu functions.php
, aber es functions.php
nicht.
add_action( 'template_redirect', 'redirect_to_specific_page' ); function redirect_to_specific_page() { if ( is_page_template( 'single-post' ) && ! is_user_logged_in() ) { wp_redirect( '/', 301 ); exit; } }
Hier ist eine aktualisierte Version des Codes, die erfolgreich nicht angemeldete Benutzer auf eine bestimmte Seite umleitet, wenn sie versuchen, ein Tag- oder Kategoriearchiv oder einen einzelnen Beitrag anzuzeigen.
add_action( 'template_redirect', 'wpse_redirect_to_specific_page' ); function wpse_redirect_to_specific_page() { // Bail if the user is logged in. if ( is_user_logged_in() ) { return; } // Redirect to a special page if the user is trying to access // a category or tag archive or a single post. if ( is_category() || is_tag() || is_singular( 'post' ) ) { // Set the ID of the page to redirect to. // Change the ID to the desired page to redirect to. $redirect_to_page_id = 1086; wp_safe_redirect( get_permalink( $redirect_to_page_id ), 301 ); exit; } }
Umgang mit benutzerdefinierten Taxonomien
Wenn Sie benutzerdefinierte Taxonomy-Archivseiten redirect is_tax()
, können Sie der bedingten statement, die den Umleitungscode is_tax()
, is_tax()
hinzufügen.
Bearbeiten benutzerdefinierter Post-Typen
Wenn Sie das Gleiche für alle Post-Typ-Singular-Seiten tun is_singular()
, können Sie is_singular()
ohne den post
Parameter zu übergeben, oder für bestimmte Post-Typen ein Array von Post-Type-Namen übergeben.