Je souhaite rediriger tous les utilisateurs non connectés vers une page spécifique s'ils essaient directement d'accéder à:
J'essaie d'utiliser ce code dans le functions.php
du thème enfant, mais cela ne fonctionne pas.
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;
}
}
Voici une version mise à jour du code qui redirige avec succès les utilisateurs qui ne sont pas connectés à une page spécifique lorsqu'ils tentent d'afficher une archive de balises ou de catégories ou un message unique.
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;
}
}
Gestion des taxonomies personnalisées
Si vous souhaitez rediriger des pages d'archive de taxonomie personnalisées, vous pouvez ajouter is_tax()
à l'instruction conditionnelle qui encapsule le code de redirection.
Gestion des types de publication personnalisés
Si vous souhaitez effectuer la même chose pour toutes les pages singulières de type publication, vous pouvez utiliser is_singular()
sans passer le paramètre post
, ou pour des types de publication spécifiques, transmettre un tableau de noms de type de publication.