主な目標は、サイトがワードプレスによって運営されていることを隠すことです。ログイン部分はすべてロックされていますが、ログアウト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
を必要とせずに、自己管理ソリューションを探しています。
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>
不足している"
に注意してください。