購読者はツールバーを表示しない/ログアウトやプロフィール編集リンクを表示

Webサイトでログインした人だけに見せるページを作る、というテーマで「WordPressでログインしたユーザーにしか見えないページを作る方法」「ログイン画面の変更、ログインログアウト後の画面変更」の2つの記事を書きました。今回は見るだけのユーザー購読者がログインしたらツールバーを表示しないようにしたり、購読者がログイン中にログアウトやプロフィールを編集へのリンクを表示する方法について書きたいと思います。

購読者がログインしたときはツールバーを表示しない

前回、見るだけのユーザー「購読者」がログインしたときはダッシュボードに移動しないカスタマイズをしました。ログインするとトップページに移動するのですが、

このように上部にツールバーが表示されてしまいます。管理者はこれで良いのですがただ見るだけのユーザーにとって、このツールバーはあまり必要ないので表示しないようにしたいと思います。

この方法についてもググって調べたところ、

WordPressのログイン後にユーザーの権限によって表示されるページを変更する方法

こちらのページを見つけました。こちらのコードを使わせていただきました。

このコードを使っている子テーマのfunctions.phpに追加します。

ちょっと気になったのは、

ここです。字義通り受け止めると 現在のユーザーは購読可能か? のように思えてしまいました。ということは管理者も当然購読可能なので true が返ってきてしまいそう…なので確認してみました。functions.php

こんな感じに current_user_can(‘subscriber’) としたらどのように返ってくるか見てみると、

購読者の場合、

このように true が、

管理者の場合、

このように false が返りました。ということは購読者の時だけ true のようなのでこのif文で購読者かどうかということが確認できることがわかりました。

購読者がログインすると

このようにツールバーが表示されなくなりました。

念のため、管理者がログインすると

ちゃんとツールバーが出ています(^^)/

ログインやログアウト、プロフィール変更へのリンクを表示するウィジェット

このようにツールバーを表示しなくした場合ですが、購読者がログインした後…ログアウトができない(>_<)、ということになってしまいました。ウィジェットで メタ情報 を表示していればできるのですが、メタ情報には他にもいろいろリンクがあるのでなるべくならそれは使いたくありません。

ということで ログインやログアウト、プロフィールを編集へのリンク をサイドバーに表示してみたいと思います。

ウィジェットのテキストでやってみようと思ったのですが、ログアウトするときにURLだけでなくnonce という値が必要だったりするため、ウィジェットを作ることにしました。

WordPress Codexの WordPress ウィジェット API を参考に書いてみます。

このコードを使っている子テーマの functions.php に追加します。

ちょっと長いのですが、Codexからコピーしたものに追加したり変更したりした箇所はわずかです。

function名を My_Widget から Subscriber_User_Widget に変更しました。
ウィジェットの定義の部分を public function __construct() に記述しました。
ウィジェットで表示したい内容を public function widget( $args, $instance ) に記述しました。
add_action の register_widget( ‘My_Widget’ ) を register_widget( ‘Subscriber_User_Widget’ ) に変更しました。

これだけです。

ウィジェットの追加をする

ダッシュボード 外観>ウィジェット をクリック

利用できるウィジェット に

今追加した 購読者ウィジェット が表示されているのでこれをクリックして、

表示したい場所にドロップします。

これで準備はOKです。

ログイン表示の確認

ログアウトしている状態でサイトを見ると、

ログイン が表示されるようになりました。クリックして、

ログインします。

ログイン後の表示の確認

ログインすると ログアウト と プロフィールを編集 リンクに変わりました。

プロフィールの編集 をクリック

プロフィールだけが編集できる管理画面に移動します。

ログアウト をクリックすると、

ログアウトして、また ログイン が表示されました。

管理者でログインした状態だと

このウィジェットは表示されません。

まとめ:ほぼだいたいログインした人にだけに見せるサイトづくりが完成しました

これでほぼだいたい、ログインした人だけに見せるサイト作りが完成しました。あと懸案事項としては、

・ユーザーの新規登録ができるようにしたいけど、自動認証ではなく一旦管理者が確認して承認したい

が残っています。これについてはまだうまくできるかどうか分かっていないので(^_^;、試してみてうまくできるようでしたらそれについてまた書きたいと思います!

[Amazon sponsored link] WordPressデザイン 関連本

兎本美佳
ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/ 無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
トップへ戻る