WordPress:カスタム投稿でタクソノミー選択部分にあらかじめチェックを入れておく方法+α

  • Posted on
  • Category : WordPress
WordPress:カスタム投稿でタクソノミー選択部分にあらかじめチェックを入れておく方法+α

最終的に別の方法を使うことにしたのですが、今後使うことあるかもと思ったので備忘録。WordPressでカスタムタクソノミーを利用する際、そのまま特にカスタマイズ等もせずにタクソノミーを選択していない状態で記事公開するとタクソノミーが未設定状態となりますが、それを回避したいという時に使える小ネタです。

WordPressでデフォルトの投稿の場合は、カテゴリーを選択し忘れたとしても「設定 > 投稿設定」にある「投稿用カテゴリーの初期設定」で設定しているカテゴリーが自動的に適用されますが、カスタムタクソノミーの場合はそういったものが用意されていません。
投稿者が忘れずに設定をするとか「WordPress:投稿画面でタイトル、コンテンツ、カテゴリー選択、アイキャッチなどを入力必須にする方法」で紹介しているようなバリデーション機能をつけたりすることで防ぐことも十分できるのですが、なにか良い方法ないかと思い試してみた方法を紹介します。

記事作成時に特定のタクソノミーにチェックを入れてしまう

方法としてはそのカスタム投稿でデフォルトとしたい特定のタクソノミーに記事の新規作成のタイミングであらかじめチェックを入れてしまい、タクソノミーがひとつも選択されていない状態で記事が投稿されるのを防ぐという方法になります。

チェックを入れる動きについてはjQueryを使用し、実装にはテーマ内のfunctions.phpに下記のように記述します。

functions.php

add_action( 'admin_head-post-new.php', 'default_taxonomy_select' );
function default_taxonomy_select() {
?>
	<script type="text/javascript">
		jQuery(function($) {
			$('#post_type_name-categorychecklist li:first-child input[type="checkbox"]').prop('checked', true);
		});
	</script>
<?php
}

上記記述後にタクソノミーがあるカスタム投稿で記事を作成しようとすると、タクソノミー選択部分の先頭にあるタクソノミーにチェックが入っているのを確認できます。

動きとしてはタクソノミー選択部分にあるチェックボックスにチェックを入れているだけで、ここではひとまず先頭のタクソノミーということでli:first-child input[type="checkbox"]と指定して、一番上にあるタクソノミーへチェックが入るようにしています。
別のタクソノミーにチェックを入れたい場合はli:first-childの部分を:nth-childを使用するなどして任意で変更するか、<input type="checkbox">にそれぞれidが付与されているので、それを直接指定するなどして変更できます。

また、liの前に#post_type_name-categorychecklistと記述しているように、カスタム投稿でタクソノミーを設定する箇所に使用されているid名を調べる必要もあります。
調べると言っても基本的に上記ソースで赤文字表示している箇所がその使用したいカスタム投稿名になっていると思うので、この動きを実装したいカスタム投稿名に変更してもらえばいいと思いますが、心配であればデベロッパーツール等でどのようなidがついているかを直接確認してください。

デフォルトの投稿と同じようにしたい場合

とにかくタクソノミーが未選択状態になってしまうのを回避したかったので一旦上で紹介した方法を実装しようと思ったのですが、少し調べてみたら「Simple Colors」さんで紹介されている方法(上で紹介したものとはまったく動きは異なりますが)がデフォルトの動きに合わせた感じで良かったので、結局こちらを参考に利用させてもらうことにしました。

下記エントリー内で紹介されているコードをfunctions.phpに記述すれば、デフォルトの投稿カテゴリーと同じように「設定 > 投稿設定」にある「投稿用カテゴリーの初期設定」下に各タクソノミーの初期設定をするためのプルダウンが追加され、投稿のカテゴリー未選択時と同じ挙動でデフォルトのタクソノミーを設定することができます。

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のアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。