---
title: "wp_logout_url() &#8211; WordPressからログアウトするためのURLを出力する関数を調べる"
canonical_url: "https://olein-design.com/blog/wp_logout_url"
language: "ja"
date_published: "2024-05-06T10:36:00+09:00"
date_modified: "2024-05-10T14:08:40+09:00"
content_type: "post"
author: "久野晃司"
taxonomies:
  category:
    - "WordPress"
  post_tag:
    - "General Template Tag"
    - "WordPress functions"
---

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

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

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

[埋め込みコンテンツ](https://olein-design.com/blog/wp_loginout)

ここでは、その `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()` 関数と一緒に使うことが多いと思いますが、それぞれの特徴やフックの動作を把握しておくと、設計の段階から役に立つと思いますので、ぜひコードを触りながら遊んでみてください。

[埋め込みコンテンツ](https://olein-design.com/blog/wp_login_url)

[埋め込みコンテンツ](https://developer.wordpress.org/reference/functions/wp_logout_url)
