web-dev-qa-db-ja.com

ログアウトURLのマスキング

主な目標は、サイトがワードプレスによって運営されていることを隠すことです。ログイン部分はすべてロックされていますが、ログアウトURLには、wordpressサイトであるwp区切り文字が含まれています。

この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を必要とせずに、自己管理ソリューションを探しています。

4
kristina childs

URLだけを置き換えるだけでは不十分です。あなたは新しいURLをどうするかWordPressに伝えなければなりません。

サンプルコード。example.com/logout=1のようなログアウトURLを作成し、ユーザーをログアウトした後にフロントページまたはカスタム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の pluginとして 、これは 純粋なプラグイン領域 であるためです。そしてあなたは WordPressを隠すことはできません本当に


また、URLの末尾にtitle =を追加します。

問題はこのようなマークアップだと思います。

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

不足している"に注意してください。

5
fuxia