L'objectif principal est de cacher que le site est propulsé par WordPress. La partie connexion est entièrement verrouillée, mais l'URL de déconnexion contient toujours ces délinéateurs wp
qui expliquent que c'est un site wordpress.
Existe-t-il un moyen de masquer cette URL? Peut-être par une conjonction de redirection personnalisée où le lien côté client passe à www.site.com/logout/
mais quelque chose dans functions.php
reconstruit le lien de déconnexion réel?
J'ai essayé des variantes de wp_logout_url('$index.php')
mais cela ne fait que rediriger. J'ai aussi essayé
add_filter( 'wp_logout_url', 'cusotm_logout' );
function cusotm_logout()
{
// set your URL here
return 'http://www.site.com/logout/';
}
Non seulement ce dernier ne fonctionne pas, il ajoute également title=
à la fin de l'URL. Je ne sais pas si la déconnexion ne fonctionne pas à cause de cela ou si la fonction elle-même est totalement une mauvaise approche.
Je n'utilise des plugins que si c'est absolument nécessaire. Vous recherchez une solution auto-gérée ... sans avoir à mod_rewrite
si possible.
Remplacer seulement l'URL n'est pas suffisant. Vous devez dire à WordPress quoi faire avec la nouvelle URL.
Exemple de code, crée une URL de déconnexion telle que example.com/logout=1
et redirige vers la page d'accueil ou une URL personnalisée après la déconnexion de l'utilisateur:
add_filter( 'logout_url', 't5_custom_logout_url', 10, 2 );
add_action( 'wp_loaded', 't5_custom_logout_action' );
/**
* Replace default log-out URL.
*
* @wp-hook logout_url
* @param string $logout_url
* @param string $redirect
* @return string
*/
function t5_custom_logout_url( $logout_url, $redirect )
{
$url = add_query_arg( 'logout', 1, home_url( '/' ) );
if ( ! empty ( $redirect ) )
$url = add_query_arg( 'redirect', $redirect, $url );
return $url;
}
/**
* Log the user out.
*
* @wp-hook wp_loaded
* @return void
*/
function t5_custom_logout_action()
{
if ( ! isset ( $_GET['logout'] ) )
return;
wp_logout();
$loc = isset ( $_GET['redirect'] ) ? $_GET['redirect'] : home_url( '/' );
wp_redirect( $loc );
exit;
}
Comme plugin sur GitHub , parce que c'est territoire du plugin pur . Et vous ne pouvez pasvraiment cacher WordPress.
il ajoute également title = à la fin de l'URL
Je suppose que le problème est le balisage comme ceci:
<a href="<?php echo wp_logout_url(); ?> title="Log out">Log out</a>
Notez le "
manquant.