Php Wordpress:如何将ACF自定义帖子类型链接到Wordpress帐户

Php Wordpress:如何将ACF自定义帖子类型链接到Wordpress帐户,php,wordpress,advanced-custom-fields,custom-post-type,Php,Wordpress,Advanced Custom Fields,Custom Post Type,因此,我有高级自定义字段链接到名为:members的自定义帖子类型。 我想把member字段链接到Wordpress用户,这些用户获得订户角色 我的自定义帖子类型代码如下: function init_members() { $labels = array( 'name' => 'Members', 'singular_name' => 'Member', 'menu_name'

因此,我有高级自定义字段链接到名为:members的自定义帖子类型。 我想把member字段链接到Wordpress用户,这些用户获得订户角色

我的自定义帖子类型代码如下:

function init_members() {
    $labels = array(
        'name'               => 'Members',
        'singular_name'      => 'Member',
        'menu_name'          => 'Members',
        'name_admin_bar'     => 'Member',
        'add_new'            => 'New member',
        'add_new_item'       => 'New member',
        'new_item'           => 'New member',
        'edit_item'          => 'Edit member',
        'all_items'          => 'All members',
        'search_items'       => 'Search member',
        'not_found'          => 'No members found',
        'not_found_in_trash' => 'No members found in trash'
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'exclude_from_search' => true,
        'rewrite' => array('slug' => 'member'),
        'has_archive' => false,
        'supports' => array('title'),
        'show_in_rest' => true,
        'menu_icon' => 'dashicons-groups'

    );
    register_post_type('members', $args);
}
add_action('init', 'init_members');



我在这里到处找了找,但没有找到任何关于这方面的帖子。

这里有一个答案。。。这将添加一个新用户。查看ACF->Tools->Generate PHP时,可以使用ACF字段ID

例如:

'fields' => array(
    array(
        'key' => 'field_5e592f61e1c2f',
        'label' => 'Contact Person',
        'name' => 'contactperson',
无论如何。。。这很有效。。但您可能需要改进您的解决方案

add_action( 'publish_members', 'so_member_add_60451627', 10, 2 );
function so_member_add_60451627($postid, $post){
    // fetch post data
    $name = sanitize_text_field($_POST['acf']['field_5e592f61e1c2f']); // ACF Field Key for name
    $phone = sanitize_text_field($_POST['acf']['field_5e592f6fe1c30']); // ACF Field Key for phone
    $email = sanitize_email($_POST['acf']['field_5e592f77e1c31']); // ACF Field Key for email

    // Create Userdata Array
    $userdata = array(
        'user_pass'     => wp_generate_password(),
        'user_login'    => $name,
        'user_nicename' => $name,
        'user_email' => $email
    );
    $user = wp_insert_user($userdata);

    // Set user meta field for phone depending on what you want it to be called
    update_user_meta($user, 'user_phone', $phone);
}

您的代码是向自定义帖子类型添加一列。你能稍微解释一下你想要什么吗?是的,所以我把高级自定义字段链接到了这个自定义帖子类型。当我在ACF字段中填写完帖子类型的信息时,我希望它能这样做。要创建一个具有subscriberI角色的Wordpress帐户,我认为您需要构建一个管理页面,然后实现一个CRUD方法。或者使用addmemberpost触发wp\u create\u用户
add_action( 'publish_members', 'so_member_add_60451627', 10, 2 );
function so_member_add_60451627($postid, $post){
    // fetch post data
    $name = sanitize_text_field($_POST['acf']['field_5e592f61e1c2f']); // ACF Field Key for name
    $phone = sanitize_text_field($_POST['acf']['field_5e592f6fe1c30']); // ACF Field Key for phone
    $email = sanitize_email($_POST['acf']['field_5e592f77e1c31']); // ACF Field Key for email

    // Create Userdata Array
    $userdata = array(
        'user_pass'     => wp_generate_password(),
        'user_login'    => $name,
        'user_nicename' => $name,
        'user_email' => $email
    );
    $user = wp_insert_user($userdata);

    // Set user meta field for phone depending on what you want it to be called
    update_user_meta($user, 'user_phone', $phone);
}