通常、投稿画面で入力していない項目があっても公開は出来ます。
しかし、項目によっては入力必須にしたい場合もあると思います。
今回はプラグインなどを使わずに投稿画面の入力項目を必須にする方法を解説していきます。
Classic Editorのみ対応で、ブロックエディタには対応していません。
(有料になっていたらすいません🙇♂️)
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() ) {
このように ||
で繋げれば幾つでも指定出来ます。
以上になります。