サポート » 使い方全般 » タクソノミ を必須入力 にする方法

  • 解決済 atikuti

    (@atikuti)


    カスタム投稿タイプにてタクソノミを選択する構造になっております。
    しかしタクソノミの選択漏れが多数あるため、
    タクソノミ を必須入力 にする方法を探しております。

    通常のカテゴリーであればfunction.phpに記述する方法で、
    カテゴリー選択がなければアラートが出る方法はありましたが、
    これのタクソノミ版は出来ないかと思っております。
    ▼参考サイト
    http://ja.forums.wordpress.org/topic/9090?replies=5

    どなたかご教授いただけましたら幸いです。
    どうぞよろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • モデレーター jim912

    (@jim912)

    var check_num = jQuery("#categorychecklist input:checked").length;

    の #categorychecklist を、#******checklist (******は、タクソノミーのスラッグ)としてみて下さい。

    atikuti

    (@atikuti)

    早速ご返信ありがとうございます。
    お教えいただいた方法で該当のタクソノミーを使っているページは問題なくうまくいきました。

    しかし今回、ページ毎に異なるタクソノミを使用しているため、
    他のページに行くと今回設定したアラートが上がってしまいます。

    タクソノミが複数ある場合に、
    その中のどれかの1つがでも選択されていたら大丈夫なように出来ないものでしょうか?

    モデレーター jim912

    (@jim912)

    フックポイントの変更とグローバル変数 $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;
    	}
    }
    atikuti

    (@atikuti)

    いつも明確なお応えをありがとうございます。
    しかし私の知識不足のため、せっかくのアドバイスを活かすことができませんでした。
    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

    (@atikuti)

    ご返信が遅くなり申し訳ありません。
    お教えいただいた方法で試したのですが、やり方が悪いためうまくいきませんでした。
    ご教授いただいておきながら申し訳ありません。

    今回はタクソノミの必須はあきらめました。
    今後、勉強してまいります。
    いろいろありがとうございました。

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    atikutiさん

    回答をしてくれたjim912さん作のプラグイン、PS Taxonomy Expanderを試してみてはいかがでしょう?
    必須にするというのとは厳密には違いますが、「タクソノミーのデフォルト設定」が設定できるようになるので、何もタクソノミーが選択されてないという状況は回避できます。

    atikuti

    (@atikuti)

    mypacecreatorさん
    アドバイス本当にありがとうございます。
    お陰さまで、
    jim912さん作のプラグイン、PS Taxonomy Expanderを使用させていただき、
    目的を果たすことが出来ました。
    本当にありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「タクソノミ を必須入力 にする方法」には新たに返信することはできません。