wordpressでのスマホ対応webサイト制作・wpプラグイン・PHPプログラム・SNS活用・ 動画・bgmやテーマ曲アレンジまで考えるコラム!

WPログアウト機能『wp-login.php?action=logout』と『wp_logout_url』の違い~後者はwpnonceで一発ログアウト

      2020/09/27

こんにちは、管理人@SS_mshpです。

今回は、(twitterにもちょっと書いたんですけど)管理人が、クレカのポイントサイトでログイン・ログアウト挙動をチェックしたりとか、お取引先のサイトでログイン関連機能をつけたりとか行ってたので、普段使っているWPの場合についても調べてみました。一般的に『wp-login.php?action=logout』と『wp_logout_url』が使われることが多いのですが、挙動はどのように違うか、さっそく見ていってみましょう。

『wp-login.php?action=logout』だと、ワンクッション置く形になる


よく使われる方法、『〇〇(wpが入っているドメイン・ディレクトリ)/wp-login.php?action=logout』にアクセスする場合の挙動です。wp-login.phpはログイン用のファイルですが、後ろにパラメーター『?action=logout』がついた場合は、ログアウトさせるページに切り替わります。ただし、このページに入ったからと言って、すぐにログインセッションを切ったりということはないです(『ログアウトしますか?』でワンクッション置く感じ)。


実際にログアウト処理させるには『?action=logout&_wpnonce=〇〇〇〇』のような、WordPress Nonceがくっついたページに入る形になりました。Nonce(のんす)は、URL やフォームを守るための「一度だけ使われる値(同じユーザーでも、時間をおいてアクセスすると値がかわるなど・ただし有効期限の間は一緒)」のことだそうです。

ログアウト機能を実装で、『ワンクッション置かずに一発ログアウト』にしたい場合は、『WordPress Nonce』が入る形でリンクを出力したほうがよさそうです。

wp_logout_url()でログアウト用urlを出力すると、WordPress Nonceが入り、ワンクッション置かずにログアウト


ボタン押したら一発ログアウトにしたかったので、別の方法を。『wp_logout_url()』をechoしてみます。リンクとかが入ってくる場合は、コロン構文にしてやったほうが、少し楽です。


とりあえず、このブログで試します(テスト完了につき、今はこのリンクはありません)。


『wp_logout_url()』で出力したリンクだと、最初から『wpnonce=〇〇〇〇』というのが入ってくるという違いがあります。


『wpnonce=〇〇〇〇』がついたリンクだったので、ワンクッションおかずに、サックリとログアウトができます。会員サイトなどで、『自動ログアウト』ではなく、『ユーザーにログアウトボタンを押してもらう』流れを想定しているときは使えるでしょう。

参考リンク(codex/wikiなど)

あとがき・まとめ

  • 一般的にWordPressでログアウト機能に使うのは『wp-login.php?action=logout』や『wp_logout_url()』(他にも方法はある)
  • wp-login.php?action=logoutでログアウト処理をする場合、ワンクッション置く形になる
  • wp_logout_url()でログアウトリンクを出力した場合は、WordPress Nonceがパラメーターに入り、一発ログアウトができる

まとめるとこのような形でしょうか。個人的には『wp_logout_url()』が、余計な動作が一個減らせるので、事前にユーザーにお知らせさえしておけば良いというような感じはしました。会員コンテンツを含むサイトを行う場合には必要になってくると思いますので、上記の挙動もぜひチェックしてみてください。

◆この記事で問い合わせ

*アトリエSS・web制作サービスページに移動します。webリニューアル・ロゴ・記事・wordpress化などでお力添えできます。
『サイトを既にお持ちで、リニューアル』の場合は、¥10万以下でご対応します(月額管理費/24回支払い縛りなどの強制無し)。

【カテゴリ】 - wpサイト制作事例
【タグ】 - ,

  関連記事

bulma.cssで、サクッとお洒落モダンデザインにリニューアルしてみる【フレームワークwebサイト制作】

今回は、bulma.cssが、お仕事で扱ったお取引先のWordP ...

WordPressのカスタムフィールド値で記事を絞り込み・検索するサイトの作り方・一部始終を徹底解説

今回は、需要があるかもしれない『WordPressのカスタムフィ ...

WPカスタムフィールドを使って、soundcloudみたいに記事一覧でオーディオ再生できるサイトを作る方法

今回は、管理人が持っている著作権フリー曲サイトに、『カスタムフィ ...

WordPressのログイン・ログアウト・権限システムを理解・カスタマイズして、『会員がコンテンツ読めるサイト』を作ろう

今回は、以前にちょっとお仕事で扱った、『ログインした会員が、コン ...

別ディレクトリでの記事の管理・表示を、1つのWordPressを使いまわして対応する方法(プラグイン無しカスタム投稿・wp-blog-header.php)

今回は、別ディレクトリのコーポレート・お仕事サイトの記事管理も、 ...

WordPressサイトに、Microsoft Azureを使って、シングルサインオン機能(パスワードベース・プラグイン無し)を実装してみる

今回は、管理するサイトが増えてきて、『id/pass管理めんどく ...

【WordPressテーマ改造】カスタマイザープレビューが表示されなくなった件の対応(ファンクション名変更・twenty seventeen)

WordPress・twenty seventeenテーマ改造で、ファンクション名変更と整理・ファイル削減などを行っていたら出たエラー(カスタマイザープレビューが表示されなくなった)に対処。