WordPressで投稿時にバリデーションを行う方法

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

WordPressで投稿時に、投稿した記事の中に特定の文字が入っているか確認し、入っていればそのまま保存し、入っていなければ警告を表示して保存を中断するというバリデーションの処理方法を紹介したいと思います。

save_postでは無理

この処理を考え始めた当初は、save_postにバリデーション用の関数をフックすれば良いかと考えました。しかし調べていると、save_postはDBにデータをインサート後に実行されるようなので、そこでチェックをしても”時すでに遅し”であることが判明しました。ついでに言うとsave_postにフックした関数で仮にバリデーションエラーとしてfalseをリターンしてもWordPress側では戻り値の確認をしていないので、そのまま処理が続行されてしまいます。

Ajaxを利用する

そこで今回紹介するのはAjaxを利用する方法です。
原理としては、公開ボタンを押したときに動作するAjaxを定義し、そこから呼ばれたPHP側の処理で投稿された記事のバリデーションを行います。

以下は投稿された記事に「hoge」という文字が入っているか確認する場合の例です。functions.phpに記述しています。

最後に

今回は記事を投稿する前に、記事の中身を確認する方法をご紹介しました。
今回紹介した方法を応用すれば、必須の文字列の存在確認だけではなく、記事の長さの確認や、カスタムフィールドがある場合は、その中身の確認もできますね。

無料e-book:ノンエンジニアでもWebサービスが 作れるようになるための マル秘テクニックガイド

あなたはプログラムやデザインの勉強をしないとWebサービスが作れるようにならないと思っていませんか?

確かに複雑なWebサービスを作るためには、プログラムやデザインのスキルが必要になってきます。
しかし、そういったスキルが無くても作れるWebサービスはいくつでもあるのです。

では、どうすればプログラムやデザインの勉強をしないでWebサービスが作れるようになるのでしょうか?
それには秘訣があるのです。

今回、その秘訣を50ページ以上に渡って解説したe-bookを無料で差し上げます!

この機会にぜひ手に入れてください。

無料e-bookを手に入れる

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。