カスタムタクソノミーを使用する際にうっかりタームの選択を忘れて投稿を保存しても、カテゴリーの「未分類」みたいに何か選択してほしい!場合に。
コード例は以下。標準の投稿を対象に、カスタムタクソノミー sector のターム brand をデフォルトにする例。
/**
* 新規投稿でデフォルトのタームを設定
*/
function set_default_term_auto($post_ID) {
global $wpdb;
// カスタムタクソノミー sector のタームを取得
$terms_cur = wp_get_object_terms($post_ID, 'sector');
// タームがなければ(新規投稿時は空)
if (0 == count($terms_cur)) {
// カスタムタクソノミー sector のターム brand を取得して
$_term = get_term_by('slug', 'brand', 'sector');
// デフォルトとして設定
$term_default = array($_term->term_id);
wp_set_object_terms($post_ID, $term_default, 'sector');
}
}
add_action('publish_post', 'set_default_term_auto');
// 標準の投稿の場合は publish_post
// カスタム投稿タイプの場合は publish_<カスタム投稿タイプ名>
カスタム投稿タイプでも使えるし標準カテゴリーのデフォルトを未分類(uncategorized)以外にする場合にも使えるはず。