WordPressでつくる会員制Webサービスのつくり方【記事投稿編】

前回会員登録について書きましたが、今回は記事を外部から投稿する方法についてです。

ちなみに今回記述した外部から投稿させる仕組みを利用してCodetterWeb制作者の(苦笑)というサービスを運営しています。

AD

[テンプレート]HTMLの実装

例として、カテゴリの指定と記事内容のみを記事として投稿する場合のHTMLは以下のようになります。

[テンプレート]PHPの実装

上記HTMLからPOSTされた内容を受けて、記事として投稿します。
その他投稿時間の指定やユーザーの指定など通常の記事投稿と同じ内容が指定できますので、詳しくはCodexを確認してみてください。

[テンプレート]カスタムフィールドの追加

カスタムフィールドやカスタム投稿タイプの指定は、wp_insert_postの処理が完了して記事IDが生成された後でないと行えません。
たとえばカスタムフィールドに投稿者のIPアドレスを登録する場合、上記PHPの$insert_idを受けて以下の様な処理になります。

[テンプレート]画像の投稿も可能にする場合

画像の投稿も許可する場合、カスタムフィールドと同様に投稿IDが生成されてから画像添付処理を行います。
HTMLはtype=fileのフォームが必要なのと、formタグ自身にenctypeを追加することを忘れないようにしてください。

そして$insert_id(投稿ID)が生成されてformpictがPOSTされた場合に添付ファイルアップロードの処理を行います。

[プラグイン]User Submitted Posts

以上、長々と書きましたが、ショートコードで簡単に投稿フォームを生成してくれるプラグインが存在します。

User Submitted Posts

プラグインをインストール後、以下のようなショートコードを投稿すると投稿フォームが表示されます。

なお、このプラグインはnonceを使用していないのでそのまま使用するとCSRFの脆弱性が存在します。
対策は以前投稿したWordPressプラグイン[User Submitted Posts]がnonceを使っていないのをなんとかするという記事をご覧ください。

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。