Wie kann ich etwa 3 Posts erstellen, nachdem der Benutzer die Registrierung abgeschlossen hat?
Das ideale Ergebnis wäre, 3 Posts mit dem Benutzer als Autor der Posts und einigen vordefinierten Werten zu erstellen. (Post-Titel und Slug)
Der Post-Titel und der Slug werden anhand der Informationen erstellt, die der Benutzer auf dem Registrierungsformular bereitstellt.
Ein Beispiel:
Der Benutzer registriert sich und gibt Name, Vorname und E-Mail-Adresse an (alle Felder sind Pflichtfelder). Es werden drei Posts erstellt, und der Benutzer ist der Autor jedes Posts. Jeder Beitrag enthält die Titel- und Slug-Informationen aus dem Registrierungsformular
* Im obigen Beispiel scheint es nicht notwendig zu sein, den Slug bearbeiten zu können, aber es werden Posts mit Wörtern wie: in, is, at und, die ansonsten entfernt werden. Beachten Sie auch, dass die "vordefinierten Werte wären: Bio, Portfolio und Kontakt.
Es würde in der Nähe der von WordPress nach der Installation erstellten "Willkommen" -Postings sein.
Irgendeine Idee, wie es geht?
Ich weiß, dass ich wp_insert_post( $my_post );
und wahrscheinlich add_action('user_register', 'some_function');
verwenden muss, aber ich weiß nicht, wie ich mit wp_insert_post( $my_post );
3 Posts auf einmal erstellen kann und wie ich das auslösen kann, nachdem der Benutzer den Registrierungsprozess abgeschlossen hat.
Irgendeine Idee, wie dies erreicht werden kann? Danke im Voraus.
Du hast die Frage irgendwie schon selbst beantwortet,
Erstellen Sie eine Funktion, mit der die drei folgenden Beiträge erstellt werden:
function create_new_user_posts($user_id){
if (!$user_id>0)
return;
//here we know the user has been created so to create
//3 posts we call wp_insert_post 3 times.
// Create post object
$my_bio_post = array(
'post_title' => 'bio',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => $user_id
);
// Insert the post into the database
$bio = wp_insert_post( $my_bio_post );
$my_portfolio_post = array(
'post_title' => 'portfolio',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => $user_id
);
// Insert the post into the database
$portfolio = wp_insert_post( $my_portfolio_post );
$my_contact_post = array(
'post_title' => 'bio',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => $user_id
);
// Insert the post into the database
$contact = wp_insert_post( $my_contact_post );
//and if you want to store the post ids in
//the user meta then simply use update_user_meta
update_user_meta($user_id,'_bio_post',$bio);
update_user_meta($user_id,'_portfolio_post',$portfolio);
update_user_meta($user_id,'_contact_post',$contact);
}
und Sie binden diese Funktion mit user_register
hook ein
add_action('user_register','create_new_user_posts');
Update Wenn Sie eine Funktion mit user_register
verknüpfen, erhält die Funktion die Benutzer-ID, damit Sie die gewünschten Informationen zu diesem Benutzer abrufen können, z.
$user = get_user_by('id', $user_id);
und jetzt ist $ user ein USER-Objekt, so dass Sie den Post-Titel in user user info ändern können, zB:
'post_title' => $user->user_firstname . " ". $user->user_lastname . 'bio'