Php Wordpress:如何将ACF自定义帖子类型链接到Wordpress帐户
因此,我有高级自定义字段链接到名为:members的自定义帖子类型。 我想把member字段链接到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'
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);
}