Маскирующий URL-адрес выхода из системы


Основная цель состоит в том, чтобы скрыть, что сайт управляется wordpress. У меня вся часть входа заблокирована, но в URL-адресе выхода все еще есть эти проклятые wp разграничители, которые выдают, что это сайт wordpress.

Есть ли способ каким-то образом замаскировать этот URL-адрес? Возможно, в сочетании с пользовательским перенаправлением, когда ссылка на стороне клиента переходит на www.site.com/logout/, но что-то в functions.php восстанавливает фактическую ссылку выхода из системы?

Я пробовал варианты wp_logout_url('$index.php'), но это только перенаправляет. Я также пробовал

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

Этот последний не только не работает, но также добавляет title= в конец URL-адреса. Я не уверен, что выход из системы не работает из-за этого или сама функция является полностью неправильным подходом.

Я использую плагины только в случае крайней необходимости. В поисках самостоятельного решения... без необходимости mod_rewrite, если это вообще возможно.

Author: kristina childs, 2012-12-14

1 answers

Недостаточно заменить только URL-адрес. Вы должны сказать WordPress, что делать с новым URL-адресом.

Пример кода, создает URL-адрес для выхода, например example.com/logout=1, и перенаправляет на главную страницу или пользовательский URL-адрес после выхода пользователя из системы:

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

Как плагин на GitHub, потому что это чистая территория плагинов. И вы не можете действительно скрыть WordPress.


Он также добавляет title= в конец URL-адреса

Я предполагаю, что проблема заключается в такой разметке:

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

Обратите внимание на отсутствующие ".

 5
Author: fuxia, 2017-04-13 12:37:46