WordPressにログインせずに記事を投稿する方法

「WordPressにログインしなくても、記事を投稿できるようにしてほしい」
という依頼がありました。
いやぁ…セキュリティ的にも危険だし、難しそうだなぁと思っていたのですが…
プラグインを使って簡単にできることが分かりました。
WordPressってすごい。
プラグイン「WP User Frontend」を導入
WEBサイト上に誰でも投稿可能なフォームを作成するWordPressプラグイン。
テキストはもちろん、画像のアップロードも可能です。
しかもカスタム投稿タイプやカスタムフィールドにも対応しています。やったぜ。
WP User Frontendの使い方
インストール方法
- WordPressの管理画面から『プラグイン→新規追加』を選択
- 「WP User Frontend」で検索
- インストール後、「有効化」ボタンを押して完了
インストールしたら、管理メニューに「User Frontend」が追加されています。
「Post Forms」タブからフォームを作成できます。
テンプレートからフォームを選ぶこともできますが、後から変更できるので適当で大丈夫です。

右のフィールドからドラッグ&ドロップで簡単に追加できます。
テキスト、画像、ラジオボタンなどを設置でき、カスタムフィールドを作成する感覚と同じです。
動画などをアップロードしようと思ったら有料版が必要になりますが、基本的には無料で必要十分の機能です。
ログインしていないユーザーも投稿できるようにする
ログインしていないユーザーでも投稿できるようにするには「Settings」タブを開いて「Enable Guest Post」にチェックを入れればOK。

後は作成したフォームのショートコードを表示させたいページに貼り付けて完了です。

ボタンをクリックすればクリップボードにコピーされます。
↓サイト上に表示されるフォームはこんな感じです。

デフォルトはシンプルなので、どんなサイトに設置しても違和感はありません。
カスタムフィールドを簡単に作成できるプラグイン「Advanced Custom Fields」にも対応しているので、工夫すればフォームからの投稿を綺麗なデザインで表示することもできます。
セキュリティには注意
「WordPressにログインせずに投稿って…リスクがあるんじゃないの?」
…と当たり前の疑問があると思いますが、もちろんノーリスクとは言えません。
例えば、フォームで画像を投稿すると即WordPressにアップロードされるので、何度も画像を投稿してサーバーをパンクさせたり…
便利なプラグインなのですが、悪用対策はしておきましょう。
まぁ…基本的にはある程度信頼できる内部関係者に向けた機能だとは思いますが…。
外部には公開せず、あくまで内部の関係者だけで投稿するフォームとしてなら問題ありません。
今回のクライアントは社内限定でURLを配布し、投稿された記事は下書きで保存される設定にしました。
最後に管理者が内容を確認して、下書きを公開に変更…という流れ。
こういう使い方なら、変な記事が勝手にサイトにアップされることもないので安心ですね。
すごく便利なプラグインだけど…多分めったに使わない。
素人が下手に使うとちょっと怖い部分もあるので、WEB製作者向けのプラグインかなと思いました。