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

仕様

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

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

ソース

# 仕様 - タイトルの入力を必須にしたい # 空欄があったらアラートを出す - テーマの functions.php あるいはプラグインにする - 投稿の入力画面は新規投稿と
上記の応用で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
}

現場からは以上です。

[紹介元] WordPressタグが付けられた新着投稿 – Qiita WordPress カスタム分類(タクソノミー)にデフォルトでチェックをいれたい

関連記事