WordPress:タイトルやコンテンツを入力必須にする方法

  • Posted on
  • Category : WordPress
WordPress:タイトルやコンテンツを入力必須にする方法

フォーラムで見かけて、いつか使いそうで覚えておきたかったので備忘録。WordPressはタイトルやコンテンツなど何も入力されていなくても「公開」ボタンを押したら先に進んでしまうのですが、それを指定した部分が入力されていない時はアラートで注意を出すようにする方法です。上手く活用すれば必ず記述してほしい箇所の漏れはなくなりますし、記事の公開・確認を何度もするという手間も省けます。

2015年9月13日 追記
タイトルとコンテンツ以外にも、抜粋、カテゴリー、タグ、アイキャッチといった項目が未入力・未選択だった時にアラート表示する方法を書きました。
カスタマイズ前の投稿画面

画像は通常のカスタマイズ前の投稿画面です。
タイトルやコンテンツを何も未入力の状態で「公開」ボタンを押してみます…。

カスタマイズ前の投稿画面

すると画像のように何も入力していない場合でも「投稿を公開しました。」という表示が出て、記事が投稿されたことになってしまいます。

今回はタイトルやコンテンツなどといった必ず記入してほしいところを必須項目にする方法になります。
以下はfunctions.phpを使用しますので、テーマ内にfunctions.phpがない場合は作成してください。

タイトル未入力時にアラートを出す

タイトル未入力時にアラートを出す

functions.php

add_action( 'admin_head-post-new.php', 'my_title_required' );
add_action( 'admin_head-post.php', 'my_title_required' );

function my_title_required() {
?>
<script type="text/javascript">
	jQuery(document).ready(function($){
		if('post' == $('#post_type').val()){
			$("#post").submit(function(e){
				if('' == $('#title').val()) {
					alert('タイトルを入力してください');
					$('#ajax-loading').css('visibility', 'hidden');
					$('#publish').removeClass('button-primary-disabled');
					$('#title').focus();
					return false;
				}
			});
		}
	});
</script>
<?php
}
?>

上記はタイトルを必須項目にしたものになり、functions.phpに記述後に確認するとタイトルが未入力の際に「タイトルを入力してください」というアラートが出るようになります。
アラートの文言を変更したい時は上記赤文字の部分を変更してください。

コンテンツ未入力時にアラートを出す

コンテンツ未入力時にアラートを出す

functions.php

add_action( 'admin_head-post-new.php', 'my_content_required' );
add_action( 'admin_head-post.php', 'my_content_required' );

function my_content_required() {
?>
<script type="text/javascript">
	jQuery(document).ready(function($){
		if('post' == $('#post_type').val()){
			$("#post").submit(function(e){
				if('' == $('#content').val()) {
					alert('コンテンツが未入力です');
					$('#ajax-loading').css('visibility', 'hidden');
					$('#publish').removeClass('button-primary-disabled');
					$('#content').focus();
					return false;
				}
			});
		}
	});
</script>
<?php
}
?>

見ての通り#title#contentになっただけです。
上記はコンテンツ部分を必須項目にしたものになり、functions.phpに記述後に確認するとコンテンツが未入力の際に「コンテンツが未入力です」というアラートが出るようになります。
タイトルの時と同じく、アラートの文言を変更したい時は赤文字の部分を変更してください。

以下を参考にさせてもらいました。

2013年3月21日 追記
当初気付かなかったのですが、「コンテンツ未入力時にアラートを出す」に関して、エディタが「ビジュアル」になっている時には動かないということをコメントを通じて教えていただきました。
タイトルへのアラートはこのままで問題ありませんが、コンテンツで使用する場合は「テキスト」を用いるか、もしくは「ビジュアル」用にコードを記述する必要があります。

Back to Top

WordPress:タイトルやコンテンツを入力必須にする方法

WordPress:タイトルやコンテンツを入力必須にする方法

/ WordPress

Tagged with:

NxWorld

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser.NxWorldではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。