LoginSignup
1
1

More than 5 years have passed since last update.

WordPress カスタム分類(タクソノミー)にデフォルトでチェックをいれたい

Last updated at Posted at 2017-07-18

仕様

  • カスタム分類(タクソノミー)にデフォルトでチェック入れておきたい
  • 全部にチェクが入っていないときはアラート出す

WordPressの仕様上カテゴリーと異なり、デフォルトの値はそのままでは設定できないので。
(ただしプラグインを使えば出来るようになる)

ソース

http://qiita.com/gatespace/items/e13b4537282386c6ff3f
上記の応用でjQueryベースで対応可能

<?php
// カスタム分類(タクソノミー)の book の スラッグ blue がチェックされてるかどうか
add_action( 'admin_head-post-new.php', 'book_term_post_edit_required' ); // 新規投稿画面でフック
add_action( 'admin_head-post.php', 'book_term_post_edit_required' );     // 投稿編集画面でフック
function book_term_post_edit_required() {
    // book タクソノミーの blue タームのIDを取得
    $book_term = get_term_by( 'slug', 'blue', 'book' );
    $book_term_id = $book_term->term_id;
    // ここでIDの有無をちゃんとチェックした方がいいのだけどね。
?>
<script type="text/javascript">
jQuery(document).ready(function($){
    // load した時
    var term_check = $('#taxonomy-book input:checked').length;
    if ( term_check == 0 ){
        $('#in-book-<?php echo $book_term_id ?>').prop('checked',true);
        $('#in-popular-book-<?php echo $book_term_id ?>').prop('checked',true);
    }

    if( 'post' == $('#post_type').val() ) {
        $("#post").submit(function(e){ // 更新あるいは下書き保存を押したとき
            term_check = $('#taxonomy-book input:checked').length;
            if ( term_check == 0 ){
                alert('Bookにチェックを入れてください');
                $('.spinner').hide(); // spinnerアイコンを隠す
                $('#publish').removeClass('button-primary-disabled'); // #publishからクラス削除
                $('#in-book-<?php echo $book_term_id ?>').prop('checked',true);
                return false;
            }
        });
    }
});
</script>
<?php
}

現場からは以上です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1