WordPress

【WordPress】投稿画面でタイトル、本文、カテゴリー、アイキャッチなどを入力必須にする方法

※ 当サイトではアフィリエイト広告を利用しています

WordPressの投稿画面で入力項目を必須にする方法ってある?

通常、投稿画面で入力していない項目があっても公開は出来ます。

しかし、項目によっては入力必須にしたい場合もあると思います。

今回はプラグインなどを使わずに投稿画面の入力項目を必須にする方法を解説していきます。

Classic Editorのみ対応で、ブロックエディタには対応していません。

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

WordPressの投稿画面でタイトル、本文、カテゴリー、アイキャッチなどを入力必須にする方法

今回投稿画面で入力項目を必須にする方法は『functions.php』にコードを記述する方法となります。

早速ですが記述するコードは以下になります(必須にしない項目は削除して下さい)

// 投稿画面で入力必須設定
function post_edit_required() {
?>
<script type="text/javascript">
jQuery(function($) {
  if ('post' == $('#post_type').val()) { // ここでページの種類を指定
    $('#post').submit(function(e) {
      // タイトル
      if ('' == $('#title').val()) {
        alert('タイトルを入力してください');
        $('.spinner').css('visibility', 'hidden');
        $('#publish').removeClass('button-primary-disabled');
        $('#title').focus();
        return false;
      }
      // 本文
      if ($('.wp-editor-area').val().length < 1) {
        alert('本文を入力してください');
        $('.spinner').css('visibility', 'hidden');
        $('#publish').removeClass('button-primary-disabled');
        return false;
      }
      // 抜粋
      if ('' == $('#excerpt').val()) {
        alert('抜粋を入力してください');
        $('.spinner').css('visibility', 'hidden');
        $('#publish').removeClass('button-primary-disabled');
        $('#excerpt').focus();
        return false;
      }
      // カテゴリー
      if ($('#taxonomy-category input:checked').length < 1) {
        alert('カテゴリーを選択してください');
        $('.spinner').css('visibility', 'hidden');
        $('#publish').removeClass('button-primary-disabled');
        $('#taxonomy-category a[href="#category-all"]').focus();
        return false;
      }
      // タグ
      if ($('#tagsdiv-post_tag .tagchecklist span').length < 1) {
        alert('タグを選択してください');
        $('.spinner').css('visibility', 'hidden');
        $('#publish').removeClass('button-primary-disabled');
        $('#new-tag-post_tag').focus();
        return false;
      }
      // アイキャッチ
      if ($('#set-post-thumbnail img').length < 1) {
        alert('アイキャッチ画像を設定してください');
        $('.spinner').css('visibility', 'hidden');
        $('#publish').removeClass('button-primary-disabled');
        $('#set-post-thumbnail').focus();
        return false;
      }
    });
  }
});
</script>
<?php
}
add_action( 'admin_head-post-new.php', 'post_edit_required' );
add_action( 'admin_head-post.php', 'post_edit_required' );

これを書いた状態で、例えば本文だけ書いて公開ボタンをクリックすると、以下のようなポップアップが表示されます。

必須項目のタイトルが未入力の場合

必須項目のタイトルが未入力の場合

そしてタイトルを入力して公開ボタンをクリックすると次はこちらが表示されます。

必須項目のタイトルを入力して抜粋は未入力の場合

必須項目のタイトルを入力して抜粋は未入力の場合

このように上から順に入力されていない項目があったらポップアップされ、必須項目が全て入力されたら公開可能となります。



投稿ページ以外を設定する場合

先ほどは投稿ページを例にしましたが、固定ページやカスタム投稿ページなども設定可能です。

6行目にif( 'post' == $('#post_type').val() )とあり、ここを編集します(それぞれ6行目のみ書いていきます)

ただし固定ページなどは元々カテゴリーがないので、先ほどのコードからカテゴリーの部分を削除しないと公開出来ないのでご注意下さい。

 

固定ページを指定

if( 'page' == $('#post_type').val() ) {

 

固定ページと投稿ページ両方指定

if ( 'post' == $('#post_type').val() || 'page' == $('#post_type').val() ) {

 

カスタム投稿ページを指定

カスタム投稿タイプスラッグが『program』の場合は以下のようになります。

if ( 'program' == $('#post_type').val() ) {

 

カスタム投稿ページを複数指定

カスタム投稿タイプスラッグが『program』と『news』の両方指定する場合は以下のようになります。

if ( 'program' == $('#post_type').val() || 'news' == $('#post_type').val() ) {

このように || で繋げれば幾つでも指定出来ます。

以上になります。

Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

-WordPress