php - 如何以编程方式将 ACF 组添加到 Wordpress 的后端?

标签 php wordpress advanced-custom-fields

我已经尝试了很多不同的功能和方法,但到目前为止我还没有让它工作。
目标是使用一些 PHP 代码将高级自定义字段组添加到 Wordpress 的后端。在最好的情况下,我们将 PHP 代码添加到类的方法中。

public function create_group( $group_name ) {

    if ( $this->does_group_already_exists( $group_name ) ) {
        return false;
    }

    acf_add_local_field_group( array(
        'key'      => 'group_1',
        'title'    => 'My Group',
        'fields'   => array(
            array(
                'key'   => 'field_1',
                'label' => 'Sub Title',
                'name'  => 'sub_title',
                'type'  => 'text',
            )
        ),
        'location' => array(
            array(
                array(
                    'param'    => 'post_type',
                    'operator' => '==',
                    'value'    => 'post',
                ),
            ),
        ),
    ) );

    return true;
}

上面的代码没有添加任何内容。我也尝试将它添加到 functions.php并且它带有 add_action()功能如下:
add_action( 'acf/init', array( $this, 'create_group' ) );

但同样,没有结果。

希望有人可以分享一个有效的解决方案。

最佳答案

今天我终于发现了一个使用 PHP 代码动态添加 ACF 组到后端的解决方案。

可以通过直接使用 acf-field-group 添加新帖子来完成。帖子类型。这是我为那些有兴趣的 future 人士的实现:

public function create_form( $form_name ) {

    $new_post = array(
        'post_title'     => $form_name,
        'post_excerpt'   => sanitize_title( $form_name ),
        'post_name'      => 'group_' . uniqid(),
        'post_date'      => date( 'Y-m-d H:i:s' ),
        'comment_status' => 'closed',
        'post_status'    => 'publish',
        'post_type'      => 'acf-field-group',
    );
    $post_id  = wp_insert_post( $new_post );

    return $post_id;
}

哪里$form_name是 ACF 组的名称。有用。并且不需要使用特定的钩子(Hook)。我可以直接调用这个方法。

关于php - 如何以编程方式将 ACF 组添加到 Wordpress 的后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59629007/

相关文章:

php - ACF 图库缩略图(含图片)

php - 重写 CI url

php - 防止 Wordpress 查询的 SQL 注入(inject)的最佳方法是什么

php - 高级自定义字段显示最后三个子中继器行

wordpress - 如何在不添加更多 vNIC 或破坏 VM 的情况下创建 GCloud LXD Bridge 设备?

javascript - 如何知道何时所有CSS由浏览器呈现(避免FOUC)

php - 如何显示用户配置文件中的 acf 字段?

php - 帮助计算总行数

php - 为什么只声明一次的函数会出现 fatal error "redeclaring"?

php - __isset 未返回正确的结果