タイトルをカスタムフィールドから自動挿入

ACFを使ってのサイト構築で、元の投稿のタイトルフィールドを使わずにカスタムフィールドからタイトルを自動挿入したいって時に使えるコード

// タイトルをカスタムフィールドから自動挿入
function lh_acf_save_post($post_id) {
if (get_post_type($post_id) == '■カスタム投稿名■') { //投稿タイプを確認
$new_title = '';
$new_slug = '';
$empty_text = 'unnamed'; //データがなかった場合の文字列

// 各ACFの文字列取得
$new_slug = get_field('■カスタムフィールド名■', $post_id ) ? get_field('■カスタムフィールド名■', $post_id ) : $empty_text;
$new_title = get_field('■カスタムフィールド名■', $post_id ) ? get_field('■カスタムフィールド名■', $post_id ) : $empty_text;

remove_action( 'acf/save_post', 'lh_acf_save_post' ); // ループ抑制のため既存のアクション削除

// 投稿データを更新
$post = array(
'ID' => $post_id,
'post_title' => $new_title,
'post_name' => $new_slug,
);
wp_update_post($post);

add_action('acf/save_post', 'lh_save_post'); // 保存

// 新規投稿(保存)の場合のURL取得
$_POST['return'] = add_query_arg('updated', 'true', get_permalink($post_id));
}
}
add_action( 'acf/save_post', 'lh_acf_save_post', 10, 1 );

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ WordPressへ にほんブログ村 IT技術ブログ Webサイト構築へ

投稿者: おーあえ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください