Cum să schimbi link-ul implicit de logout în WordPress Admin

14 iul. 2012, 03:42:23
Vizualizări: 18.7K
Voturi: 6

Vreau să folosesc un alt link pentru logout deoarece am protejat /wp-admin/* cu htpassword. Există vreo modalitate de a face asta? Ceva de genul creării unei pagini personalizate precum site.com/logout și apoi să o folosesc ca nou link de logout?

Mulțumesc!

0
Toate răspunsurile la întrebare 6
9

Puteți filtra 'logout_url' și returna o valoare personalizată dacă vă aflați în zona de administrare:

add_filter( 'logout_url', 'wpse_58453_logout_url' );
function wpse_58453_logout_url( $default ) 
{
    // setați URL-ul personalizat aici
    return is_admin() ? 'http://example.com/custom' : $default;
}
14 iul. 2012 03:55:04
Comentarii

Dar de ce primesc eroarea 404? Am încercat mysite.com/logout dar primesc 404, trebuie să adaug ceva cod la finalul URL-ului?

tiltdown tiltdown
14 iul. 2012 10:12:05

Păi, ținta ar trebui să existe undeva. :) Poți crea un endpoint personalizat (exemplu).

fuxia fuxia
14 iul. 2012 10:15:21

Ce voi face cu endpoint-ul? Am creat o pagină numită 'logout' și doar redirecționează acolo, ce trebuie să adaug pe pagina de logout? Mulțumesc pentru răspuns.

tiltdown tiltdown
14 iul. 2012 10:27:23

Nu sunt sigur dacă te mai urmăresc... poate asta e o întrebare separată?

fuxia fuxia
14 iul. 2012 11:21:44

Nu, aceeași întrebare. Uite care e treaba: am urmărit funcția ta, am adăugat-o în fișierul meu de funcții personalizate, apoi am setat-o să fie "mysite.com/logout" - logout fiind o pagină WordPress. Când fac <?php echo wp_logout_url( ); ?> îmi dă URL-ul corect de logout, care este mysite.com/logout, dar când dau click pe el, mă redirecționează doar către pagina WordPress /logout. Trebuie să configurez vreun cod pe pagina mea /logout din WordPress?

tiltdown tiltdown
14 iul. 2012 11:27:35

Nu înțeleg. Care e problema cu redirecționarea către /logout dacă asta e pagina pe care ai setat-o în funcție?

fuxia fuxia
14 iul. 2012 11:30:00

http://mysite.com/wp-login.php?action=logout&redirect_to=url În prezent, aceasta este URL-ul implicit pentru deconectare de pe site-ul meu. Nu vreau să folosesc acest link. Vreau să folosesc ceva de genul http://mysite.com/logout pentru a efectua acțiunea de deconectare. Nu am nicio problemă cu redirecționarea după deconectare. Sper că înțelegeți ideea. Mulțumesc!

tiltdown tiltdown
14 iul. 2012 13:43:14

hai să continuăm această discuție în chat

tiltdown tiltdown
14 iul. 2012 13:49:02

Am găsit soluția aici: https://www.kmbytes.com/wordpress-logout-redirect-filter/

karlosuccess karlosuccess
4 mar. 2019 20:12:34
Arată celelalte 4 comentarii
0

Cred că ar trebui să adaugi o regulă de rescriere în fișierul tău .htaccess, astfel:

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

Aceasta a funcționat pentru mine pentru redirecționarea către pagina de pornire:

add_action('wp_logout','unlog');

function unlog(){
  wp_redirect( site_url() );
  exit();
}
15 dec. 2016 20:08:57
Comentarii

Mulțumesc, funcționează. Răspunsul acceptat a făcut doar o redirecționare fără delogare.

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

Am găsit soluția aici: https://www.kmbytes.com/wordpress-logout-redirect-filter/

Și funcționează perfect!

add_filter( 'logout_url', 'my_logout_url' );
function my_logout_url( $url ) {
    $redirect = home_url();
    return $url.'&redirect_to='.$redirect;
}

Noroc!

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 ) ) . '">' . __( 'Autentificare' ) . '</a>';
    } else {
        $link = '<a href="' . esc_url( wp_logout_url( $redirect ) ) . '">' . __( 'Deconectare' ) . '</a>';
    }
 
    if ( $echo ) {
        /**
         * Filtrează HTML-ul generat pentru link-ul de Autentificare/Deconectare.
         *
         * @since 1.5.0
         *
         * @param string $link Conținutul HTML al link-ului.
         */
        echo apply_filters( 'loginout', $link );
    } else {
        /** Acest filtru este documentat în wp-includes/general-template.php */
        return apply_filters( 'loginout', $link );
    }
}

Afișează un link care permite utilizatorilor să navigheze către pagina de Autentificare pentru a se conecta sau deconecta, în funcție de starea lor curentă.

25 mai 2022 07:08:42
Comentarii

Bine ați venit în comunitatea de Dezvoltare WordPress! Această funcție este exact așa cum este descrisă - totuși nu răspunde efectiv la întrebare, care se referea la modul de schimbare a destinației link-ului deja disponibil

bosco bosco
26 mai 2022 21:23:01

Acest lucru nu oferă un răspuns la întrebare. Odată ce vei avea suficientă reputație vei putea comenta pe orice postare; în schimb, oferă răspunsuri care nu necesită clarificări din partea celui care întreabă. - Din Review

vancoder vancoder
27 mai 2022 00:31:03
0

O soluție foarte interesantă este să creezi o pagină "Deconectare" și apoi să creezi șablonul acesteia în folderul principal al temei tale prin fișierul page-{your-logout-slug}.php. Iată cel mai simplu cod pentru această pagină.

    if ( is_user_logged_in() ) : 
        wp_logout();
        wp_redirect(site_url());
    else : 
        wp_redirect(site_url());
    endif;

Adaugă un argument la site_url() cu orice slug sau lasă gol pentru a fi deconectat către pagina ta principală. Este o soluție bună pentru că folosind orice cod php poți face multe lucruri înainte să fii deconectat.

9 feb. 2023 04:33:11