Leiten Sie nicht angemeldete Benutzer an eine bestimmte Seite weiter, die auf einer Seitenvorlage basiert

Ich möchte alle nicht angemeldeten Benutzer auf eine bestimmte Seite redirect, wenn sie direkt versuchen, auf Folgendes zuzugreifen:

  • Irgendein Kategoriearchiv
  • Beliebiges Tag-Archiv
  • Jeder einzelne Beitrag

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; } } 

Solutions Collecting From Web of "Leiten Sie nicht angemeldete Benutzer an eine bestimmte Seite weiter, die auf einer Seitenvorlage basiert"

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.