通常の投稿タイプですと、カテゴリーを選択していない場合は「未分類」が、自動的に設定されます。
カスタム投稿の場合は、「ターム」を登録していても、この自動的に設定させる機能が無いため、タームが未選択のまま公開されてしまいます。
ということで今回は、「ターム」を選択していない場合、特定のタームを自動的に設定させるようにする方法をご紹介しますね!
カスタム投稿で初期タームを設定する簡単な方法
下記のコードを「functions.php」に記述してください。
カスタム投稿タイプのスラッグ : 「news」
カスタムタクソノミーのスラッグ : 「cat_news」
初期タームのID : 「28」
という前提で話を進めます。
function add_defaultcategory_automatically($post_ID) {
global $wpdb;
$curTerm = wp_get_object_terms($post_ID, 'cat_news'); // カスタムタクソノミーのスラッグ
if (0 == count($curTerm)) {
$defaultTerm = array(28); // 初期タームのID
wp_set_object_terms($post_ID, $defaultTerm, 'cat_news'); // カスタムタクソノミーのスラッグ
}
}
add_action('publish_news', 'add_defaultcategory_automatically'); // publish_カスタム投稿タイプのスラッグ
書き換えが必要な箇所は全部で4箇所になります。
ご自身の環境に合わせて書き換えてください。
下記は、コピペ用です。
function add_defaultcategory_automatically($post_ID) {
global $wpdb;
$curTerm = wp_get_object_terms($post_ID, 'カスタムタクソノミーのスラッグ');
if (0 == count($curTerm)) {
$defaultTerm = array(初期タームのID);
wp_set_object_terms($post_ID, $defaultTerm, 'カスタムタクソノミーのスラッグ');
}
}
add_action('publish_カスタム投稿タイプのスラッグ', 'add_defaultcategory_automatically');
今回は以上です!