Come modificare il link di logout predefinito in WordPress Admin
Voglio utilizzare un altro link per il logout perché ho protetto /wp-admin/* con htpassword. C'è un modo per farlo? Qualcosa come creare una pagina personalizzata tipo site.com/logout e poi usarla come nuovo link di logout?
Grazie!
Puoi filtrare 'logout_url' e restituire un valore personalizzato se ti trovi nell'area di amministrazione:
add_filter( 'logout_url', 'wpse_58453_logout_url' );
function wpse_58453_logout_url( $default )
{
// imposta qui il tuo URL personalizzato
return is_admin() ? 'http://example.com/custom' : $default;
}
Ma perché ottengo un 404? Ho provato mysite.com/logout ma ricevo 404, devo aggiungere del codice alla fine dell'URL?
tiltdown
Beh, il target dovrebbe esistere da qualche parte. :) Potresti creare un endpoint personalizzato (esempio).
fuxia
Cosa farà con l'endpoint? Ho creato una pagina chiamata 'logout' e viene semplicemente reindirizzata lì, cosa devo aggiungere alla pagina di logout? Grazie per la risposta.
tiltdown
No, stessa domanda. Ecco il punto: ho seguito la tua funzione, l'ho aggiunta al mio file di funzioni personalizzate e l'ho impostata su "mysite.com/logout" dove logout è una pagina WordPress. Quando faccio <?php echo wp_logout_url( ); ?> mi restituisce l'URL di logout corretto che è mysite.com/logout ma quando ci clicco mi reindirizza semplicemente alla pagina WordPress /logout. Devo impostare del codice sulla mia pagina /logout in WordPress?
tiltdown
Non capisco. Qual è il problema con il reindirizzamento a /logout se quella è la pagina che hai impostato nella funzione?
fuxia
http://mysite.com/wp-login.php?action=logout&redirect_to=url Attualmente questo è l'URL di logout predefinito per il mio sito. Non voglio utilizzare questo link. Voglio usare qualcosa come http://mysite.com/logout per eseguire l'azione di logout. Non ho problemi con il reindirizzamento dopo il logout. Spero tu abbia capito il mio punto. Grazie!
tiltdown
continuiamo questa discussione nella chat
tiltdown
Ho trovato la soluzione qui: https://www.kmbytes.com/wordpress-logout-redirect-filter/
karlosuccess
Ho trovato la soluzione qui: https://www.kmbytes.com/wordpress-logout-redirect-filter/
E funziona perfettamente!
add_filter( 'logout_url', 'my_logout_url' );
function my_logout_url( $url ) {
$redirect = home_url();
return $url.'&redirect_to='.$redirect;
}
Saluti!
function wp_loginout( $redirect = '', $echo = true ) {
if ( ! is_user_logged_in() ) {
$link = '<a href="' . esc_url( wp_login_url( $redirect ) ) . '">' . __( 'Accedi' ) . '</a>';
} else {
$link = '<a href="' . esc_url( wp_logout_url( $redirect ) ) . '">' . __( 'Esci' ) . '</a>';
}
if ( $echo ) {
/**
* Filtra l'output HTML per il link di Accesso/Uscita.
*
* @since 1.5.0
*
* @param string $link Il contenuto HTML del link.
*/
echo apply_filters( 'loginout', $link );
} else {
/** Questo filtro è documentato in wp-includes/general-template.php */
return apply_filters( 'loginout', $link );
}
}
Mostra un link che permette agli utenti di navigare alla pagina di Accesso per entrare o uscire dal sistema, a seconda che siano attualmente autenticati o meno.
Benvenuti nella community di sviluppo WordPress! Questa funzione è esattamente come descritta - tuttavia non risponde realmente alla domanda, che chiedeva come cambiare la destinazione del link già disponibile
bosco
Questo non fornisce una risposta alla domanda. Quando avrai sufficiente reputazione potrai commentare qualsiasi post; invece, fornisci risposte che non richiedano chiarimenti da parte di chi ha posto la domanda. - Dalla Revisione
vancoder
Una soluzione molto interessante è creare una Pagina "Logout" e poi crearne il template nella cartella principale del tuo tema tramite il file page-{your-logout-slug}.php. Ecco il codice più semplice per questa pagina.
if ( is_user_logged_in() ) :
wp_logout();
wp_redirect(site_url());
else :
wp_redirect(site_url());
endif;
Aggiungi un argomento a site_url() con qualsiasi slug o lascialo vuoto per essere disconnesso e reindirizzato alla tua home page. È utile perché utilizzando qualsiasi codice PHP puoi fare molte cose prima di essere disconnesso.