クライアントワークで WordPress のサイトを制作していると、こんな「あるある」に遭遇しませんか?
- 「この記事の下書き、確認してほしいんですけど……」
- 「アカウント作るほどじゃないけど、スマホでの実機表示を見てほしい」
- 「パスワード保護ページにするのは、一覧に出ちゃうから嫌だ」
わざわざ確認用のアカウントを発行してログインしてもらうのは手間だし、かといってスクショだとレスポンシブの確認ができない。 そんな悩みを解決するために、GTIにて**『GTI Public Preview』** というプラグインを開発・公開しました。
いわゆる公式ディレクトリにはない「独自プラグイン」ですが、実務で安心して使えるように機能面・セキュリティ面にはかなりこだわって作っています。今回はこのプラグインの機能と、こだわりのポイントを紹介します。
目次[閉じる]
『GTI Public Preview』とは?
一言でいうと、「特定の人だけに、期間限定で、下書き記事を見せる」ためのプラグインです。
通常、WordPress の下書き記事はログインユーザーしか見られません。しかし、このプラグインを使うと、専用のパラメータが付いた「秘密のURL」 を知っている人なら、ログインなしでプレビュー閲覧が可能になります。
こだわりの機能 3選
ただ「見せる」だけなら他にも似たプラグインはありますが、プロの現場で使うことを想定して、以下の機能を搭載しました。
1. 「有効期限」が設定できる
これが一番の推しポイントです。「確認お願いします」と送ったプレビューURLが、半年後も生きているのはセキュリティ的に心配です。
このプラグインでは、プレビューURLに有効期限(Expiration Date) を設定できます。 「明日まで有効」「来週まで」といった期限を設定しておけば、期限切れ後は自動的に見られなくなります。これで「いつの間にか情報が漏れていた」というリスクを回避できます。
2. URLのパラメータ(Key)を自由に変更可能
よくあるプラグインだと ?token=xyz... のようにパラメータ名が固定されていますが、これだと「何かプラグインを使っているな」と推測されやすいです。
『GTI Public Preview』では、認証に使うパラメータキー(Key)を管理画面から自由に変更できます。 デフォルトでは適当なものが設定されていますが、例えば ?secret_preview=... や ?check_key=... など、推測されにくい独自のキーを設定可能です。
3. SEO対策も万全(noindex自動出力)
プレビュー用のURLが万が一 Google の検索結果にインデックスされてしまったら大事故です。 このプラグイン経由で表示されるページには、自動的に <meta name="robots" content="noindex,nofollow" /> が出力されるようになっています。 さらに念を入れて、HTTPヘッダーにも X-Robots-Tag: noindex, nofollow を付与しているので、検索エンジン対策もバッチリです。
実際の画面

使い方は超シンプルです。
- 記事を書く(下書き保存)。
- サイドバーの「Enable Public Preview」にチェック。
- 「Generate」ボタンでトークンを生成。
- 必要であれば有効期限(Expiration Date)を入力。
- 「下書き保存/更新」ボタンを押せば下書きのまま更新されます。(WordPressの「下書き保存」と同じです)
- 保存すると「公開リンク」が発行されるので、コピーして相手に送るだけ!
技術的なお話(エンジニア向け)
仕組みとしては、WordPressの the_posts フィルターフックを利用して、特定のパラメータとトークンが一致した場合のみ、下書きステータスの記事を強制的に表示させています。
また、投稿タイプ(Post Type)の制限も設定画面から変更できるので、通常の投稿だけでなく、固定ページやカスタム投稿タイプでも利用可能です。
もともと、IP Login Restrictor に搭載していた機能でもあったのですが、そちらはIPアドレス縛りの上での機能でした。
でも、このようにIPで縛らないプラグインがあることを教えていただいたのでそれを見たのですが、総当たりしたらプレビュー見れちゃうんじゃないか…と考えてしまい(笑)今回、自作で「トークン」をつけるということを思い立ちました。
参考にしたのはこのプラグインです。 https://wordpress.org/plugins/public-post-preview/
ありがとうございました!
あくまでもプレビューなので noindexを明示的に
こだわりポイントで言及した noindex 実装がこの辺のコードです。
// 実際のコード(記事掲載用)
public function add_noindex_meta()
{
if ($this->is_public_preview()) {
echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
}
}
まとめ
「アカウントを作るほどではないけど、実際の画面で確認してほしい」というシチュエーションは意外と多いはず。 『GTI Public Preview』は、そんな痒い所に手が届くツールになったと自負しています。
もし興味がある方は、ぜひ使ってみてください!
…とここまで来て、ダウンロードこちらです。
📁 ダウンロード
最新版はこちらから取得できます:
注意
⚠️ 免責およびお願い
本ツールはサイト制作時にプレビュー画面を共有するためのサポートとして
株式会社ジーティーアイ(GTI)が独自に開発・公開しているものです。
オープン配布のため、動作保証・個別サポート・苦情対応は一切行いません。
ご利用は自己責任でお願いいたします。
ご自身のサイトでの運用テスト・バックアップを行ったうえでご利用ください。

コメント Comments
コメント一覧
コメントはありません。
トラックバックURL
https://blog.gti.jp/post-75419/trackback/