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?

Beh, il target dovrebbe esistere da qualche parte. :) Potresti creare un endpoint personalizzato (esempio).

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.

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?

Non capisco. Qual è il problema con il reindirizzamento a /logout
se quella è la pagina che hai impostato nella funzione?

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!

continuiamo questa discussione nella chat

Ho trovato la soluzione qui: https://www.kmbytes.com/wordpress-logout-redirect-filter/

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

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

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.
