情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
Advanced Custom Fields の値をタイトルや別フィールドに登録する覚書まとめ
- 投稿タイトル
-
function my_post_title_updater( $post_id ) { $my_post = array(); $my_post['ID'] = $post_id; if ( get_post_type() == 'posttype' ) { $my_post['post_title'] = get_field('title'); } wp_update_post( $my_post ); } add_action('acf/save_post', 'my_post_title_updater', 20);
- 投稿スラッグ
-
function custom_post_title( $value, $post_id, $field ) { $type = get_post_type($post->ID); if ( 'posttype' == $type) { if(isset($value) && $value != '') { $args = array( 'ID' => $post_id, 'post_name' => sanitize_title($value) ); wp_update_post( $args ); } return $value; } } add_filter('acf/update_value/name=slug', 'custom_post_title', 10, 3);
- アイキャッチ
-
function acf_set_featured_image( $value, $post_id, $field ){ $type = get_post_type($post->ID); if($value != '' && 'posttype' == $type){ add_post_meta($post_id, '_thumbnail_id', $value); } return $value; } add_filter('acf/update_value/name=eyecatch', 'acf_set_featured_image', 10, 3);
- リピーターの数
- 本文用のセットで見出しが2つ以上あれば目次を表示、などの分岐用に別のフィールドに保存しておくと便利
function my_acf_update_value( $value, $post_id, $field ) { if(get_post_type( $post_id ) == 'xxx' && have_rows('xxx')) { $count=0; while (have_rows('xxx')) : the_row(); if (get_sub_field('title')) { $count++; } endwhile; } $value = $count; return $value; } add_filter('acf/update_value/name=count', 'my_acf_update_value', 10, 3);
- パスワード
- パスワード保護を必須にしたい場合に
function my_post_password_updater( $post_id ) { $my_post = array(); $my_post['ID'] = $post_id; if ( get_post_type() == 'posttype' ) { $my_post['post_password'] = get_field('password'); } wp_update_post( $my_post ); } add_action('acf/save_post', 'my_post_password_updater', 20);
- ターム名
- メールフォーム でターム名を利用するため
function my_acf_update_term( $value, $post_id, $field ) { if(get_post_type( $post_id ) == 'entry' ) { $terms = get_the_terms($post->ID, 'taxonomy-name'); if ($terms && ! is_wp_error($terms)) { foreach($terms as $term) { $value = $term->name; break; }; } } return $value; } add_filter('acf/update_value/name=field-name', 'my_acf_update_term', 10, 3);
その他のAdvanced Custom Fields に関する記事一覧
- ACF デートピッカーのフォーマット設定
- ACF リピーターをカレンダーに出力(予約カレンダーの実装)
- ACF 入れ子リピーターの内側だけループ
- WP REST API 独自エンドポイントとACF
- ACF 値の登録や保存
- REST API でACFの表示など
- Advanced Custom Fields の表示、まとめ
- PHP8以降で出るWarning
- イベントの開催期間の表示
- イベント終了時にタイトルに追加する
- アクセスランキング
- ワードプレスからメール送信
- CF7で予約した人にリマインドメールを送る
- ACF 設定ページ(オプションページ)
- ACF escape HTML
- 出勤・スケジュール管理の覚書2
- ACF 複数選択チェックボックスのチェックの有無
- Advanced Custom Fields で役立つ関数
- 日時予約簡易版
- ACF チェックボックス(複数選択)のアップデート