var check_num = jQuery("#categorychecklist input:checked").length;
の #categorychecklist を、#******checklist (******は、タクソノミーのスラッグ)としてみて下さい。
早速ご返信ありがとうございます。
お教えいただいた方法で該当のタクソノミーを使っているページは問題なくうまくいきました。
しかし今回、ページ毎に異なるタクソノミを使用しているため、
他のページに行くと今回設定したアラートが上がってしまいます。
タクソノミが複数ある場合に、
その中のどれかの1つがでも選択されていたら大丈夫なように出来ないものでしょうか?
フックポイントの変更とグローバル変数 $post_type で分岐処理することで、タクソノミーを使っているページでだけ、Javascript を適用することができます。
以下は、投稿でだけチェック用のスクリプトが適用されます。
add_action( 'admin_footer-post.php', 'alert_taxonomy' );
add_action( 'admin_footer-post-new.php', 'alert_taxonomy' );
function alert_taxonomy() {
global $post_type;
if ( $post_type == 'post' ) {
echo <<< EOF
<script type="text/javascript">
// js処理
</script>';
EOF;
}
}
いつも明確なお応えをありがとうございます。
しかし私の知識不足のため、せっかくのアドバイスを活かすことができませんでした。
js処理部分のところが分からないため、下記のコードでは、動作いたしませんでした。
もしよろしければjs部分もご教授いただけないでしょうか。
add_action( ‘admin_footer-post.php’, ‘alert_taxonomy’ );
add_action( ‘admin_footer-post-new.php’, ‘alert_taxonomy’ );
function alert_taxonomy() {
global $post_type;
if ( $post_type == ‘post’ ) {
echo <<< EOF
<script type=”text/javascript”>
jQuery(“#post”).attr(“onsubmit”, “return check_category();”);
function check_category(){
var check_num = jQuery(“#categorychecklist input:checked”).length;
if(check_num <= 0){
alert(“注意: カテゴリが選択されていません。”);
jQuery(“#ajax-loading”).css(“visibility”,”hidden”);
jQuery(“#publish”).removeClass(“button-primary-disabled”);
return false;
}else{
return true;
}
}
</script>’;
EOF;
}
}
ご返信が遅くなり申し訳ありません。
お教えいただいた方法で試したのですが、やり方が悪いためうまくいきませんでした。
ご教授いただいておきながら申し訳ありません。
今回はタクソノミの必須はあきらめました。
今後、勉強してまいります。
いろいろありがとうございました。
atikutiさん
回答をしてくれたjim912さん作のプラグイン、PS Taxonomy Expanderを試してみてはいかがでしょう?
必須にするというのとは厳密には違いますが、「タクソノミーのデフォルト設定」が設定できるようになるので、何もタクソノミーが選択されてないという状況は回避できます。
mypacecreatorさん
アドバイス本当にありがとうございます。
お陰さまで、
jim912さん作のプラグイン、PS Taxonomy Expanderを使用させていただき、
目的を果たすことが出来ました。
本当にありがとうございました。