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

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

save_postでは無理

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

Ajaxを利用する

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

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

最後に

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

マッチングサービスの始め方 7日間動画セミナー(無料)

登録はこちら

こんなお悩みございませんか?

「プログラミングの知識はないけど、マッチングサービスを作ってみたい」
「マッチングサービスを作ってみたいけど良いアイデアが思いつかない」
「アイデアはあるけれど、実現できるのか自信が無い」
「自分のWebサービスを作ってみたい」
「副業を始めたい」

そんなあなたがこの無料セミナーを受講すると

・成功するマッチングサービスの考え方が身につき、いくつでもアイデアを考えられるようになります。
・大きな金額を投資すること無く最大の成果を上げることができます。それに万が一、サービスが上手くいかなかった時でも、すぐに次のアイデアに挑戦できます。
・開発を外注すること無く、ほぼ無料で、かつ、スピーディーにサービスを開始することができます。また、アイデアが思いついたら、いくつでもサービスを作ることができます。
・サービスが軌道に乗ればWebサービスで起業や副業を始められます。

知識0でも今話題のマッチングサービスを始められるようになる!
登録はこちら