wp_logout_url() – WordPressからログアウトするためのURLを出力する関数を調べる

投稿日 :

WordPress にログインしている状態の際に簡単にログアウトできる URL を出力してくれる関数が wp_logout_url() です。

wp_loginout() 関数は、ログインしていない状態であればログイン URL を、ログインしている状態であればログアウト URL を出力してくれる関数でした。そのログアウトの URL だけバージョンみたいな感じでしょうか。

ここでは、その wp_logout_url() について詳しく紹介していきます。

wp_logout_url() とは

ログアウト URL を取得します。出力まではしないので、echo で出力してあげる必要があります。

内部で wp_nouce_url()esc_html() でエンコードされた値が返ってきます。

パラメーター

$redirectログアウトした後にリダイレクトする URL

使い方

基本的な使い方としては、単純に echo でログアウト URL を出力する方法になります。

echo '<a href="' . wp_logout_url() . '">ログアウト</a>';

このようにアンカーリンクの URL として利用するのが一般的かと思います。

しかし、これだとログインしていない人(=ログアウトしている人)にも表示されてしまうので、ちょっと変ですよね。そういう場合は、ログインしている人にしか見せないように分岐すると良いでしょう。

if ( is_user_logged_in() ) {
	echo '<a href="' . wp_logout_url() . '">ログアウト</a>';
}

また、ログアウトした後にリダイレクトしたいパスを指定することもできます。以下のようにすることで、ウェブサイトのホームページへリダイレクトすることができます。

if ( is_user_logged_in() ) {
	echo '<a href="' . wp_logout_url( home_url() ) . '">ログアウト</a>';
}

home_url() ではなく get_permalink() にすることで、ログアウトしたタイミングで表示していたページを再表示することもできます。

if ( is_user_logged_in() ) {
	echo '<a href="' . wp_logout_url( get_permalink() ) . '">ログアウト</a>';
}

フック

logout_url

apply_filters( ‘logout_url’, string $logout_url, string $redirect )

ログアウト URL にフィルターすることができます。

第一引数では $logout_url で URL を、第二引数では $redirect でリダイレクト先のパスを取得できるので、そちらを動的に変更することもできますね。

こちらのソースコードで動きを確かめてみてください。

add_filter(
	'logout_url',
	function ( $logout_url, $redirect ) {
		echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
		echo( '<pre>' );
		var_dump( $logout_url, $redirect );
		echo( '</pre>' );
		echo '<hr>';
	},
	10,
	2
);

まとめ

別記事で紹介している wp_login_url() 関数と一緒に使うことが多いと思いますが、それぞれの特徴やフックの動作を把握しておくと、設計の段階から役に立つと思いますので、ぜひコードを触りながら遊んでみてください。

コーディングや
WordPress開発のリソースが足りない!

オレインデザインでは、デザインデータからの HTML コーディングから WordPress テーマ・プラグイン開発まで幅広くウェブ制作に対応しています。

お気軽にお問い合わせください。

WordPress 6.5.x 対応版を出版しました

WordPress デフォルトテーマ Twenty Twenty-Four を使って、シンプルなブログやポートフォリオサイト、そしてコーポレートサイトを作りながら、ブロックテーマやサイトエディターの基本を理解することができます。