it-swarm.com.de

Ausloggen-URL maskieren

Das primäre Ziel ist es zu verbergen, dass die Website von WordPress gesteuert wird. Ich habe den Login-Teil komplett gesperrt, aber die Logout-URL enthält immer noch die wp-Delineatoren, die verraten, dass es sich um eine WordPress-Site handelt.

Gibt es eine Möglichkeit, diese URL irgendwie zu maskieren? Vielleicht durch eine Verknüpfung von benutzerdefinierten Weiterleitungen, bei der der clientseitige Link zu www.site.com/logout/ wechselt, aber etwas in functions.php den eigentlichen Abmeldelink neu erstellt?

Ich habe Variationen von wp_logout_url('$index.php') ausprobiert, aber dies leitet nur weiter. Ich habe es auch versucht

add_filter( 'wp_logout_url', 'cusotm_logout' );
function cusotm_logout() 
{
    // set your URL here
    return 'http://www.site.com/logout/';
}

Dies funktioniert nicht nur nicht, es hängt auch title= an das Ende der URL an. Ich bin mir nicht sicher, ob die Abmeldung aus diesem Grund nicht funktioniert oder ob die Funktion selbst der falsche Ansatz ist.

Ich benutze Plugins nur, wenn ich unbedingt muss. Auf der Suche nach einer selbstverwalteten Lösung ... wenn möglich, ohne mod_rewrite.

4
kristina childs

Es reicht nicht aus, nur die URL zu ersetzen. Sie müssen WordPress mitteilen, wie mit der neuen URL verfahren werden soll.

Beispielcode, erstellt eine Abmelde-URL wie example.com/logout=1 und leitet nach dem Abmelden des Benutzers zur Startseite oder benutzerdefinierten URL weiter:

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;
}

Als Plugin auf GitHub , da dies reines Plugin-Territorium ist. Und Sie könnenwirklich WordPress nicht verstecken.


außerdem wird title = an das Ende der URL angehängt

Ich denke, das Problem ist Markup wie folgt:

<a href="<?php echo wp_logout_url(); ?> title="Log out">Log out</a>

Beachten Sie den fehlenden ".

5
fuxia