在 WordPress 网站上为每个用户自动创建帖子

问题描述 投票:0回答:2

我正在尝试在向我的网站注册新用户时自动发布自定义帖子 (

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');

wordpress custom-post-type dynamically-generated user-registration
2个回答
0
投票

您的挂钩不正确,请使用 user_register 操作挂钩,该挂钩在用户注册后触发并将

$user_id
作为变量传递:

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

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


0
投票

您准确地描述了我要解决的问题。

你有这个工作吗?

© www.soinside.com 2019 - 2024. All rights reserved.