プラグインAdvanced custom fields(ACF)のacf/initアクションの使用方法・解説

概要

acf/init アクションは、Advanced Custom Fields (ACF) プラグインが完全に初期化された後に起動します。このアクションは、ACFのフィールドグループやフィールドを登録したり、カスタム機能を追加する際に非常に便利です。

このアクションを使用する際には、以下のような機能を実装することがよくあります。

  1. カスタムフィールドグループの登録
  2. カスタムフィールドの設定
  3. カスタムポストタイプとのフィールド割り当て
  4. ACFのフィルターフックの登録
  5. ACFオプションページの作成
  6. カスタムテーブルへのデータ保存

構文

add_action('acf/init', 'my_acf_init_function');

function my_acf_init_function() {
    // ACFの初期化処理
}

パラメータ

このアクションには特にパラメータはありません。

戻り値

このアクション自体は戻り値を持ちません。

使用可能なバージョン

  • ACF バージョン: 5.0 以上
  • WordPress バージョン: 4.0 以上

サンプルコード

サンプルコード 1: カスタムフィールドグループの登録

add_action('acf/init', 'register_my_acf_field_group');
function register_my_acf_field_group() {
    acf_add_local_field_group(array(
        'key' => 'group_1',
        'title' => 'My Custom Group',
        'fields' => array(
            array(
                'key' => 'field_1',
                'label' => 'Custom Field',
                'name' => 'custom_field',
                'type' => 'text',
            ),
        ),
        'location' => array(
            array(
                array(
                    'param' => 'post_type',
                    'operator' => '==',
                    'value' => 'post',
                ),
            ),
        ),
    ));
}

このコードは、特定のカスタムフィールドグループを‘post’ポストタイプに追加します。

サンプルコード 2: オプションページの作成

add_action('acf/init', 'my_acf_options_page');
function my_acf_options_page() {
    if (function_exists('acf_add_options_page')) {
        acf_add_options_page(array(
            'page_title'    => 'カスタムオプション',
            'menu_title'    => 'カスタムオプション',
            'menu_slug'     => 'custom-options',
            'capability'    => 'edit_posts',
            'redirect'      => false,
        ));
    }
}

このコードは、WordPress管理画面にオプションページを追加します。

サンプルコード 3: カスタムフィールドをフロントエンドに表示

add_action('acf/init', 'my_acf_dynamic_field');
function my_acf_dynamic_field() {
    if( function_exists('get_field') ) {
        $custom_field_value = get_field('custom_field', get_the_ID());
        echo $custom_field_value;
    }
}

このコードは、現在のポストのカスタムフィールドの値をフロントエンドに表示します。

サンプルコード 4: カスタマイズされたフィールドの設定

add_action('acf/init', 'my_acf_add_custom_fields');
function my_acf_add_custom_fields() {
    acf_add_local_field(array(
        'key' => 'field_custom_image',
        'label' => 'カスタム画像',
        'name' => 'custom_image',
        'type' => 'image',
    ));
}

このコードは、カスタム画像フィールドを新たに追加します。

サンプルコード 5: カスタム投稿タイプ用フィールド登録

add_action('acf/init', 'register_custom_post_type_fields');
function register_custom_post_type_fields() {
    acf_add_local_field_group(array(
        'key' => 'group_custom_post',
        'title' => 'Custom Post Fields',
        'fields' => array(
            array(
                'key' => 'field_custom_description',
                'label' => 'カスタム説明',
                'name' => 'custom_description',
                'type' => 'textarea',
            ),
        ),
        'location' => array(
            array(
                array(
                    'param' => 'post_type',
                    'operator' => '==',
                    'value' => 'custom_post',
                ),
            ),
        ),
    ));
}

このコードは、カスタム投稿タイプ「custom_post」に対応するフィールドグループを追加します。

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

この関数について質問する


上の計算式の答えを入力してください