web-dev-qa-db-fra.com

Rediriger toutes les pages vers la page d'accueil mais toujours autoriser le tableau de bord

Je veux seulement que les utilisateurs puissent utiliser le tableau de bord de mon site WordPress. J'ai un formulaire de connexion personnalisé sur la page d'accueil, mais à part cela, je ne veux pas qu'ils puissent accéder à quoi que ce soit d'autre sur le serveur.

J'ai vu le fule htaccess suivant ...

# BEGIN redirect to homepage
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js|php)$
RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteRule .* / [L,R=301]
#END redirect to homepage

Qui a l'air de faire ce dont j'ai besoin, mais existe-t-il un meilleur moyen de le réaliser?

1
fightstarr20

Vous pouvez utiliser le code suivant:

add_action('template_redirect','function_callback');
function function_callback() {
    if ( ! is_front_page() ) {
        wp_redirect( get_home_url() );
        exit;
    }
}
1
Tarun modi

Utilisez simplement ' template_redirect ' hook

Ce crochet d’action s’exécute juste avant que WordPress détermine la page de modèle à charger. C'est un bon point à utiliser si vous devez faire une redirection en connaissance de cause du contenu interrogé.

add_action('template_redirect','redirect_all_pages_to_home');

function redirect_all_pages_to_home() {
    if ( ! is_front_page() ) {
        wp_redirect( get_home_url() );
        exit;
    }
}
0
JItendra Rana