Come modificare il link di logout predefinito in WordPress Admin

14 lug 2012, 03:42:23
Visualizzazioni: 18.7K
Voti: 6

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!

0
Tutte le risposte alla domanda 6
9

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;
}
14 lug 2012 03:55:04
Commenti

Ma perché ottengo un 404? Ho provato mysite.com/logout ma ricevo 404, devo aggiungere del codice alla fine dell'URL?

tiltdown tiltdown
14 lug 2012 10:12:05

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

fuxia fuxia
14 lug 2012 10:15:21

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 tiltdown
14 lug 2012 10:27:23

Non sono sicuro di averti seguito bene… forse è una domanda separata?

fuxia fuxia
14 lug 2012 11:21:44

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 tiltdown
14 lug 2012 11:27:35

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

fuxia fuxia
14 lug 2012 11:30:00

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 tiltdown
14 lug 2012 13:43:14

continuiamo questa discussione nella chat

tiltdown tiltdown
14 lug 2012 13:49:02

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

karlosuccess karlosuccess
4 mar 2019 20:12:34
Mostra i restanti 4 commenti
0

Penso che dovresti aggiungere una regola di riscrittura nel tuo file htaccess in questo modo.

RewriteRule ^logout/(.*) /wp-login.php?action=logout&_wpnonce=$1 [QSA,L]
23 dic 2012 13:39:00
1

Questo ha funzionato per me reindirizzando alla home page:

add_action('wp_logout','unlog');

function unlog(){
  wp_redirect( site_url() );
  exit();
}
15 dic 2016 20:08:57
Commenti

Grazie, funziona. La risposta accettata ha solo effettuato un reindirizzamento senza un logout.

Fabian von Ellerts Fabian von Ellerts
13 mag 2019 17:53:46
0

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!

4 mar 2019 20:11:54
2
    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.

25 mag 2022 07:08:42
Commenti

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 bosco
26 mag 2022 21:23:01

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 vancoder
27 mag 2022 00:31:03
0

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.

9 feb 2023 04:33:11