为 wordpress 站点上的每个用户自动创建一个 post

Automatically create a post for each user on wordpress site

我正在尝试在向我的网站注册新用户时自动设置自定义 post (users)。我只是不太熟悉 php,但我一直在解决来自 Whosebug 的另一个问题:

理想情况下,我希望在注册或更新携带自定义字段的用户信息时创建一个页面。我使用 ACF 创建与用户关联的自定义字段(在代码中列为小写变量)和与要创建的自定义关联的自定义字段 posts(在代码中列为大写变量)。

感谢您提供的任何帮助!

function create_authors_page( $user_id ) {

$the_user           = get_userdata( $user_id );
$new_user_name      = $the_user->user_login;
$PostSlug           = $user_id;
$PostGuid           = home_url() . "/" . $PostSlug;
$member_bio         = get_field('member_bio');
$contact_info       = get_field('contact_info');
$member_affiliation = get_field('member_affiliation');

$my_post = array( 'post_title'   => $new_user_name,
                  'post_type'    => 'users',
                  'post_content' => '',
                  'post_status'  => 'publish',
                  'post_theme'   => 'user-profile',
                  'guid'         => $PostGuid );

$NewPostID = wp_insert_post( $my_post ); 
 $Member_Bio            = $member_bio; 
 $Contact_Info          = $contact_info; 
 $Member_Affiliation    = $member_affiliation;
 update_post_meta( $NewPostID, $Member_Bio, $Contact_Info, $Member_Affiliation );

 return $NewPostID;
 }

add_action('publish_members', 'create_authors_page');

您的挂钩不正确,请使用 user_register 动作挂钩,该挂钩在用户注册后触发并将 $user_id 作为变量传递:

add_action('user_register', 'create_authors_page');
function create_authors_page( $user_id ) {
    // do your stuff
}

您还可以使用 profile_update 挂钩,该挂钩会在每次用户更新个人资料时触发。