通常タイトルが空白の場合はフロントエンドでは空白になり、管理画面上でも「自動下書き」ではなく「タイトルなし」になりますが、save_post
などの使い方によっては「自動下書き」になる場合もあるので、どこかの記述方法に問題があると思います。
とりあえずは、これでどうでしょう?ヘッダーのタイトルタグは適当に直してください。
function my_title( $title ) {
global $post;
if( ! is_admin() && get_post_type() === '投稿タイプ' ) {
$meta = get_post_meta( $post->ID, 'カスタムフィールド', true );
$title = str_replace( $title, $meta, $title );
}
return $title;
}
add_filter( 'the_title', 'my_title' );
function my_header_title( $title ) {
global $post;
if( get_post_type() === '投稿タイプ' ) {
$meta = get_post_meta( $post->ID, 'カスタムフィールド', true );
$site_name = get_bloginfo( 'name' );
return $meta.' - '.$site_name;
}
}
add_filter( 'pre_get_document_title', 'my_header_title' );
-
この返信は6年、 3ヶ月前にmanboが編集しました。
-
この返信は6年、 3ヶ月前にmanboが編集しました。
manbo 様
回答ありがとうございます。
fuction.phpに記述してみたのですが反映されず、「自動下書き」のままでした。
また、下記のものも試してみましたが
「自動下書きat〇〇〇〇〇」というように表示がされました。
あとは自動下書きだけ取れればいいのですが
function my_auto_title($title_message){
global $post;
/* ポストタイプがカスタムかどうかチェック */
if( $post->post_type == 'lessons' ){
$lesson_place = get_post_custom_values('lesson_place');
if( $lesson_place ){
$title_message = $title_message . ' at ';
$title_message = $title_message . $lesson_place[0];
}
}
return $title_message;
}
add_filter('single_post_title', 'my_auto_title');
add_filter('the_title', 'my_auto_title');
だったらこうではないですか?
function my_auto_title($title_message){
global $post;
/* ポストタイプがカスタムかどうかチェック */
if( $post->post_type == 'lessons' ){
$lesson_place = get_post_custom_values('lesson_place');
if( $lesson_place ){
//$title_message = $title_message . ' at ';
//$title_message = $title_message . $lesson_place[0];
$title_message = ' at ' . $lesson_place[0];
}
}
return $title_message;
}
add_filter('single_post_title', 'my_auto_title');
add_filter('the_title', 'my_auto_title');
こんな方法だとどうですか?
function my_update_post_title( $data ) {
if( $data['post_type'] === 'lessons' && $data['post_title'] === '自動下書き' );
$data['post_title'] = get_post_custom_values( 'lesson_place' )[0]. ' at ';
return $data;
}
add_filter( 'wp_insert_post_data', 'my_update_post_title' );
上記とはどれのことでしょうか?
あと、解決したなら解決済みにしてください。
manbo 様
申し訳ありません。
コチラです。
function my_auto_title($title_message){
global $post;
/* ポストタイプがカスタムかどうかチェック */
if( $post->post_type == 'lessons' ){
$lesson_place = get_post_custom_values('lesson_place');
if( $lesson_place ){
//$title_message = $title_message . ' at ';
//$title_message = $title_message . $lesson_place[0];
$title_message = ' at ' . $lesson_place[0];
}
}
return $title_message;
}
add_filter('single_post_title', 'my_auto_title');
add_filter('the_title', 'my_auto_title');