ラック
Home > CMS > 記事 > 2016年11月 > カスタムタクソノミー(階層型)にデフォルトでチェックを付ける

カスタムタクソノミー(階層型)にデフォルトでチェックを付ける

カテゴリ: WordPress

カテゴリと同様階層をオンにしたカスタムタクソノミーにおいて、「1つもチェックを付けていない場合に特定のタクソノミーにチェックを付ける」ということを実現しよう、と。言ってしまえばカテゴリにおける未分類と同じ扱いです。


// カスタムタクソノミー未選択時にデフォルトで全てにチェックを設定
function add_default_automatically($post_ID) {
    global $wpdb;
    // 設定されているカスタム分類のタームを取得
    $curTerm = wp_get_object_terms($post_ID, 'TAXONOMY_SLUG');
    // 既存のターム指定数が 0(つまり未設定)であれば)すべてを指定
    if (0 == count($curTerm)) {
        // misc のターム ID
        $defaultTerm= array(XX, YY, ZZ);
        wp_set_object_terms($post_ID, $defaultTerm, 'TAXONOMY_SLUG');
    }
}
// 投稿を作成する際に指定
add_action('publish_post', 'add_default_automatically');

上のコードをfunctions.phpに貼り付け。これで投稿(投稿タイプ:post)に追加したカスタムタクソノミー(スラッグが「TAXONOMY_SLUG」というもの)に対して、投稿で「公開」「更新」したときにタクソノミーIDがXX, YY, ZZの3つにチェックを付けて公開・更新することができる、と。

なお、投稿タイプが異なるときは投稿タイプのスラッグに応じてpublish_postの部分が変化すると思われます。

タグ: システム設定周り, カスタムタクソノミー

 



関連する記事一覧