ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

カスタム投稿においてデフォルトのカテゴリを設定する@WordPress

カスタム投稿におけるデフォルトのカテゴリを指定する例です。

デフォルトの「投稿」で同様のことをするのはこちらになります。

http://blog.showzine.co/entry/setting-default-categoryblog.showzine.co

以下、コードです。利用しているテーマのfunctions.phpに記述します。

  • カスタム投稿タイプが「news」
  • カスタム分類名が「cat_news」
  • デフォルトで指定したいタームが「notice」でターム ID は「4」

<?php
// カスタム投稿タイプでカテゴリ未選択時にデフォルトで 「お知らせ」 を設定
function add_defaultcategory_automatically($post_ID) {
    global $wpdb;
    // 設定されているカスタム分類のタームを取得
    $curTerm = wp_get_object_terms($post_ID, 'cat-news');
    // 既存のターム指定数が 0(つまり未設定)であれば)「notice」を指定(noticeはカテゴリースラッグ)

    if (0 == count($curTerm)) {
        // notice のターム ID
        $defaultTerm= array(4);
        wp_set_object_terms($post_ID, $defaultTerm, 'cat-news');
    }
}
// news を作成する際に指定
add_action('publish_news', 'add_defaultcategory_automatically');