スポンサーリンク

【WordPress】ACFの値を使ってタイトルとスラッグを自動設定する(Advanced Custom Fields)

アイキャッチ WordPress

WordPressで定型的なコンテンツを運用する際、タイトルやスラッグは手入力ではなく、既存のデータなどを反映させたい場合などがあるかと思います。

ここでは、Advanced Custom Fieldsに入力された値を使ってWordPress投稿のタイトルとスラッグを自動設定する方法について説明します。

スポンサーリンク

ACFの値をページタイトル、スラッグに自動反映させる

Advanced Custom Fieldsの値を取得して投稿内に反映させるには、acf/save_post アクションにフックします。

下記の例ではカスタム投稿タイプ「product」に対して、「prod-number」、「prod-name」のカスタムフィールドが準備されていると想定した場合の処理です。

投稿の保存時に「prod-name」をページタイトルに、「prod-number」をスラッグに設定します。

以下をfunctions.phpなどに記載します。

function lh_acf_save_post($post_id) {
    if (get_post_type($post_id) == 'product') { //投稿タイプを確認
        if ( get_post_type( $post_id ) == 'acf' ) { //投稿タイプ'ACF'のときは実行しない
            return;
        }
        $new_title = '';
        $new_slug = '';
        $empty_text = 'unnamed'; //データがなかった場合の文字列

        // 各ACFの文字列取得
        $new_slug = get_field('prod-number', $post_id ) ? get_field('prod-number', $post_id ) : $empty_text;
        $new_title = get_field('prod-name', $post_id ) ? get_field('prod-name', $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 );
スポンサーリンク

WordPress&Cocoonのお悩みにお答えします

クラベルではWordPressのブログサイト構築、Cocoonテーマの導入やカスタマイズに関するご相談を承っております。

お困りの方はぜひ一度お問い合わせください。また、現在ココナラをつかったサービス出品も始めてみました。お悩みおひとつの解決からお手軽にお申込みできますので、こちらもぜひあわせてご覧ください。

最短当日★ワードプレスの疑問質問トラブル解決します ご相談無料!初心者歓迎!優しく丁寧、徹底的にサポートします!
Cocoonテーマサイト構築&カスタマイズします ご相談無料★公式サポート対象外もOK!プログラミングはお任せ
WordPressWeb開発
この記事は良かったですか?
最新情報をお届けします。
クラベルをフォローする
スポンサーリンク
この記事を書いた人
クラベル

Webサイト構築、Wordpressのカスタマイズやphpプログラミングなどやってます。BPM(ビジネスプロセス管理)、BPR(業務改革)コンサルなどにも従事。世の中すべてピタゴラ装置をモットーに自動化します。ブログは省エネ運営中。Cocoonカスタマイズやゲーム、ガジェットの話題など。

プロフィール詳細、お仕事のご依頼はこちら

クラベルをフォローする
クラベル

コメント

タイトルとURLをコピーしました