あーさーの備忘録

ゆっくり自由に生きてます

WordPressでクローズドなWebサイトを作ろう

かれこれ丸一年以上ブログでのアウトプットを怠っていました、Arthurです。心身共に不調を極めています、とても苦しい毎日です。生き地獄という感じです。

一応Webアプリ開発などは続けていて、GitHubに上げているので、気になる人は見てください。こちらでも、近い将来紹介します。

github.com

WPでクローズドなWebサイトを作ろう!

さて、本題です。WordPressは今まであまり使ってこなかったのですが、CMS希望の案件がいくつかあったので遊んでいました。

そこで、私が所属している団体向けにクローズドなWebサイトを作ることにしたのです。メンバー各人にアカウントを発行して、そのメンバーだけがログインして参照できるサイトです。イメージとしては、どのページでもログインしてなかったらWordPress標準のログインページに飛び、ログイン後見たかったページが参照できるという感じです。未ログインユーザに見せるパブリックなページはログインページのみという想定です。ユーザごと別々の会員ホームページみたいなものはありません。

ところが、やり方がよくわかりません。少なくともバニラの状態ではできないようです。Google先生に聞いていろんな方法が見つかったので説明していきます。

Basic認証(WP BASIC Auth)

ja.wordpress.org

BASIC認証を導入するプラグインがいくつか見つかりました。たとえば、WP BASIC Authは、WordPressのユーザ情報と同じものでBASIC認証ができるらしいです。そもそもプラグイン入れなくても.htaccessなりserver.confなりに書けばなんとかなりますが、WordPressのユーザ情報をそのまま使えるのは嬉しいですよね。

ただ、今どきBASIC認証のポップアップが出てくるのは正直ダサいです。また、このプラグインに限った話ですが、最終更新が2015年あたりで止まっているようですWordPressは定期的にアップデートしているので、ちゃんと動くのでしょうか。セキュリティ面も心配ということで今回は採用しないことに。

BASIC認証ってデフォルトのパスワード最大長が8文字ですが、このプラグインではそれ以上も対応しているのでしょうか。気になりますが、ブロガーでもYouTuberでもないので検証はしません。ごめんなさい。

User Access Manager

ja.wordpress.org

次に紹介するのは、WordPressに本格的なアクセス権限管理機能を持たせるプラグインです。機能一覧から抜粋すると以下の通り。

  • ユーザーグループ
  • 閲覧者と、編集者の区別
  • ユーザーグループに基づいたアクセス権
  • アクセス権がない場合に、特定のページにリダイレクトさせる

読んだ感じ、私の掲げる要件を満たしているような感じがします。しかし、使ってみた感想としては、設定が煩雑すぎてWordPress初心者の私には厳しかったです。各ページごとのアクセス制限ができて細かいところに手が届くのですが、トップページのアクセス制限の方法が分かりませんでした。トップから他のコンテンツに遷移するときにはじめてログインページに飛ばされます。これでは今回の要件を満たせません。このサイトやコンテンツの存在自体を隠したいので、トップページ丸ごとアクセス制限を掛けたいです。

きっと私の要件を満たす使い方はできるのでしょうが、設定の方法がわからない以上どうしようもなく、不採用。テーマ書き換えたりすればいけそうだけど、そこまでする気力はありませんでした。

Password Protected

ja.wordpress.org

設定するのはパスワード1つとお手軽な感じなのが魅力です。今回はユーザを識別したいので採用しませんが、これくらい手軽で良いサイトなら十分使えそうだと感じました。ちなみに、画像やアップロードしたファイルは保護の対象外とのこと。

他にも、ページ内の一部の内容だけ隠すプラグインなどが見つかりましたが、Google検索による日本語の記事では、それらしい情報を得ることはできませんでした。

My Private Site

ja.wordpress.org

半ば諦めつつ、WordPressプラグイン検索ツールで、英語でそれっぽい単語を入れていたら、My Private Siteというプラグインに出会いました。

Allows the Administrator to restrict a WordPress-based web site to viewing only by registered users who are logged on. Any attempt, by anyone not logged, to view any Page, Post or other part of the site will display a WordPress login screen.

それっぽいことが書いてあるので導入して設定を弄ります。これが今回の要件にピッタリなプラグインだったのです!

My Private Siteの紹介

インストール

ダッシュボードから、「プラグイン」→「新規追加」→検索窓に"My Private Site"で一番上に出てくるものを「今すぐインストール」→「有効化」で終わりです。どのプラグインも流れは同じなので、画像つけて事細かに説明はしません。

有効化すると、ダッシュボードの「設定」に「Private Site」が追加されます。

設定

設定を開くとわかりますが、このプラグインは日本語対応していません。英語ですが平易なので問題ないと思います。

有効化しただけでは実は本機能は有効になっていません。下のチェックボックスにチェックを入れて「Save Changes」を押すと、一瞬でクローズドサイトの出来上がりです。細かい仕様も弄れますが、今回の要件的にはこのままで問題なし。

f:id:arthur_teleneco:20190922210840p:plain

運用

見るだけのユーザには権限を「閲覧者」としてアカウントを発行します。閲覧者はダッシュボードを見る必要がないと思うので、無効化しておくと良いですね。管理者や編集者も、いちいちログインリンクを踏まなくても強制的にログインに飛ばされるので、クリック数が減っていい感じです。

まとめ

クローズドなサイトを作るには「My Private Site」というプラグインが良いよ、というお話でした。実はこのプラグインに関する日本語のブログ記事が全く見つからなかったんですよね。ブログネタにするのにちょうど良いと思って書いてみました。