• 解決済 bosukete

    (@bosukete)


    お世話になります。

    通常の投稿(post)の投稿画面のみ、カテゴリ未入力時にアラートを出したいと思っております。
    (固定ページやカスタム投稿の投稿画面では出さない)

    http://ja.forums.wordpress.org/topic/9090?replies=5

    上記を元に、function.phpに

    if ( !has_action( 'admin_footer', 'alert_category' ) ){
    	add_action( 'admin_footer' , 'alert_category' );
    }
    function alert_category() {
    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;
    }

    としたのですが、このままだと固定ページやカスタム投稿でもアラートが出てしまいます。
    固定ページにはカテゴリが無いため、投稿できません。

    そこでアラートを通常投稿だけに絞りたいのですが、
    「通常投稿だけ」
    という条件分岐が思いつきません。

    とりあえずカスタム投稿や固定ページの投稿画面にはurlにpost_typeやpostといったパラメータがついているので、

    if(!$_GET['post_type'] && !$_GET['post'] && !has_action( 'admin_footer', 'alert_category' ) ){
    			add_action( 'admin_footer' , 'alert_category' );
    }

    とすることで一応希望通りの動作はしておりますが、もっとスマートな条件分岐、もしくはhook_suffixなどを使った記法はありませんでしょうか?
    よろしくお願い致します。

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

    (@gatespace)

    良かったら参考にどうぞ
    https://gist.github.com/gatespace/11020994

    トピック投稿者 bosukete

    (@bosukete)

    gatespaceさま
    的確なご回答ありがとうございます。

    なるほど、投稿タイプの判別はソース内のフォーム

    <input type="hidden" id="post_type" name="post_type" value="price" />

    のidから判別するという事ですか…。

    確かにカテゴリーは未記入で投稿した場合は初期設定のカテゴリが自動入力されるので必要ありませんね。
    ここはカスタム投稿のタームが未入力になるのを防ぐのに使いたいと思います。

    他、アイキャッチ画像の例まで盛り込んでいただき、ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「投稿(post)の投稿画面のみ、カテゴリ未入力時にアラート」には新たに返信することはできません。