wp_set_object_terms / wp_insert_term

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

投稿を何らかの条件で自動でタームに登録したい場合はwp_set_object_terms。そのタームがタクソノミーにない場合は新たに作成されるが、スラッグは指定できない。

タイトルの頭文字で自動登録
function blog_cat_check($post_ID) {
global $wpdb;
$default = wp_get_object_terms($post_ID, 'blog_cat');
if (0 == count($default)) {
$title = get_the_title($post_ID);
$firstletter = $title[0];
if ($firstletter == 'A' || $firstletter == 'a') { $tn = A; } elseif ($firstletter == 'B' || $firstletter == 'b') { $tn = B; } ~ else {$tn = 'その他';}
wp_set_object_terms($post_ID, $tn, 'blog_cat');
}
}
add_action('publish_blog', 'blog_cat_check');

施設とブログの紐づけなどで、施設名をタームに登録したい場合はwp_insert_term。スラッグも指定できる。

ターム名は投稿タイトル、スラッグは投稿IDで登録
function facility_cat_check($post_ID) {
global $wpdb;
if ( 'facility' == get_post_type()) {
$name = get_the_title($post_ID);
$slug = $post_ID;
if ( term_exists($slug, 'facility_cat') == null){
    wp_insert_term($name, 'facility_cat', array( 'slug'=>$slug ));
 }
}
}
add_action('save_post', 'facility_cat_check');