'supports' => array('title')
カスタム投稿タイプを作成するときに使用する ISBN 番号と YouTube URL の 2 つの (テキスト) フィールドのみを持つカスタム投稿タイプがあります。
問題は、タイトルが必要ないことです。なので投稿を保存するとタイトルがISBN番号になるようにしました。
add_filter('wp_insert_post_data', array($this, 'change_title'), 99, 2);
function change_title($data, $postarr) {
if ($data['post_type'] == 'book_video') {
// If it is our form has not been submitted, so we dont want to do anything
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return $data;
// Verify this came from the our screen and with proper authorization because save_post can be triggered at other times
if (!isset($_POST['wp_meta_box_nonce']))
return $data;
// Combine address with term
$title = $_POST['_bv_isbn'];
$data['post_title'] = $title;
}
return $data;
}
これは機能しますが、問題は、タイトルを事前に入力せずに投稿を保存すると (まったく)、投稿が保存されず、タイトル変更機能が呼び出されず、すべてのフィールドがリセットされることです。
タイトルにデフォルト値を設定して非表示にすることはできますか?