こんにちは、asです
WordPressの通常の投稿は、カテゴリーを選択せずに公開すると、デフォルトのカテゴリーが勝手に選択されるようになっています。
しかし、カスタム投稿タイプの記事には、カスタムタクソノミーを登録していても、この機能がないので、未選択のまま公開されてしまいます。
そうするとタクソノミーページのリストに載らなかったり、パーマリンク設定によっては404になってしまうので避けたいところです。
そこで、カスタム投稿タイプでタームが未選択の投稿は公開時に特定のタームを選択状態にさせる様にしたいと思います(^^)
手順&コード
functions.phpに下記を記載します。
ownersblog(カスタム投稿タイプ名)、ownersblog-cat(カスタムタクソノミー名)を適宜書き換え、選択させたいタームIDを指定してください。
/*-----------------------------------------------------
タクソノミー未選択時に特定のタームを選択させる
----------------------------------------------------- */
function add_defaultcategory_automatically($post_ID) {
global $wpdb;
//カスタムタクソノミーのタームを取得
$curTerm = wp_get_object_terms($post_ID, 'ownersblog-cat');//★カスタムタクソノミー名
//ターム指定数が未設定の時に特定のタームを指定
if (0 == count($curTerm)) {
$defaultTerm= array(1);//★選択させたいタームID
wp_set_object_terms($post_ID, $defaultTerm, 'ownersblog-cat');//★カスタムタクソノミー名
}
}
//カスタム投稿を作成する際に指定
add_action('publish_ownersblog', 'add_defaultcategory_automatically');//★publish_カスタム投稿タイプ名
ちなみに通常投稿のデフォルトのカテゴリーは、管理画面の「設定」>「投稿設定」の「投稿用カテゴリーの初期設定」で変更できます(^^)♪