我正在尝试在向我的网站注册新用户时自动发布自定义帖子 (
users
)。我对 php 不太熟悉,但我一直在解决 stackoverflow 上的另一个问题:使用 wp_insert_post 自动为每个用户创建一个帖子
我希望在注册或更新用户信息时创建一个包含自定义字段的页面。我使用 ACF 创建与用户关联的自定义字段(在代码中作为小写变量列出)以及与要创建的自定义帖子关联的自定义字段(在代码中作为大写变量列出)。
感谢您提供的任何帮助!
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 钩子,每次用户更新个人资料时都会触发。
您准确地描述了我要解决的问题。
你有这个工作吗?