wake-up-neo.net

Erstellen Sie Beiträge bei der Benutzerregistrierung

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

  • 1- Jon Doe Bio | Jon-Doe-Bio
  • 2- Jon Doe Portfolio | Jon-doe-Portfolio
  • 3- Jon Doe Kontakt | Jon-Doe-Kontakt

* 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.

5
user983248

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'
10
Bainternet