Erstellen eines benutzerdefinierten Beitragstyps bei der Registrierung

Ich habe Mühe, die beste / schnelleste Lösung für dieses Problem zu finden:

Ich habe ein Plugin, das Unternehmen erstellt, aber alle Unternehmensinformationen als Benutzer speichert, so dass alle Informationen im Profil des Benutzers sind. Ich habe ein anderes Plugin (Geo my WP), das nur nach Post / Seiten / cpt’s sucht, aber nicht nach Benutzern (naja, sie machen das irgendwie, aber basierend auf Adresse und nicht anderen Benutzermetadaten, zB Kategorie, was ich will).

Also dachte ich, wenn es eine Möglichkeit gäbe, dass wenn der Benutzer ein Profil erstellt, ein cpt erstellt wird und einige der Daten speichert, zB Adresse, vielleicht wird dort auch Kategorie gespeichert, sowie Post-Metadaten. Scheint redundant, aber dann funktioniert mein Geolocation-Plugin gut, ohne jede Menge an benutzerdefinierten Änderungen (wenn überhaupt möglich).

Jetzt bin ich ein bisschen müde, wenn es möglich ist, ein cpt automatisch zu erstellen und sich auch bei der Benutzerregistrierung zu aktualisieren.

Oder irgendeine andere Lösung?

Btw: Ich brauche irgendwie das Geo my wp, da ich andere cpt’s habe, die ich in der Suchmaske benutzen möchte.

Solutions Collecting From Web of "Erstellen eines benutzerdefinierten Beitragstyps bei der Registrierung"

Es gibt den user_register , der unmittelbar nach dem user_register eines Benutzers zur database aufgerufen wird. Die Benutzer-ID wird als Argument an den Hook übergeben.

Sie können wp_insert_post , um einen neuen Beitrag in diese Aktion einzufügen. Sie müssen nur die relevanten Informationen vom Benutzer erhalten und sie dem Beitrag hinzufügen. Sie können dem Post, den Sie erstellen, benutzerdefinierte Felder hinzufügen, indem Sie auf die Post-ID verweisen, die von wp_insert_post .

Dies ist ein Beispiel dafür, wie Sie bei der Benutzerregistrierung eine benutzerdefinierte Beitragsart hinzufügen würden – Sie müssen sie natürlich an Ihre Bedürfnisse anpassen, aber sie sollte Ihnen eine Vorstellung davon geben, was zu tun ist.

 /* * Create new custom post type post on new user registration */ add_action( 'user_register', 'wpse_216921_company_cpt', 10, 1 ); function wpse_216921_company_cpt( $user_id ) { // Get user info $user_info = get_userdata( $user_id ); // Create a new post $user_post = array( 'post_title' => $user_info->nickname; 'post_content' => $user_info->description, 'post_type' => 'your_company_custom_post_type', // < - change to your cpt ); // Insert the post into the database $post_id = wp_insert_post( $user_post ); // Add custom company info as custom fields add_post_meta( $post_id, 'company_id', $user_info->ID ); add_post_meta( $post_id, 'company_email', $user_info->user_email ); }