Qual è un modo semplice per visualizzare un modulo di registrazione utente nel front-end?
Sto cercando un modo semplice per posizionare il modulo di registrazione utente nel front-end di un sito WordPress. Ho già utilizzato wp_login_form() per inserire il modulo di login nel front-end, ma ora ho bisogno di fare lo stesso con il modulo di registrazione.
Qualche idea?

Jeff Starr ha scritto un ottimo tutorial sulla registrazione front-end, login e recupero password
adottando un approccio simile a quello suggerito da onetrickpony.
Considera questo come un seguito alla sua risposta e come un'altra risorsa che potrebbe aiutarti a realizzarlo:
http://digwp.com/2010/12/login-register-password-code/
Ora hai due esempi su come codificarlo da solo e credimi - vale decisamente la pena farlo in questo modo (il tuo). Non è così difficile e ti offre libertà, flessibilità e riutilizzabilità che nessun plugin può garantire.

Se vuoi gestirlo da solo, ecco quello che uso:
add_action('template_redirect', 'register_a_user');
function register_a_user(){
if(isset($_GET['do']) && $_GET['do'] == 'register'):
$errors = array();
if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'fornire un utente e una email';
if(!empty($_POST['spam'])) $errors[] = 'spammer vai via';
$user_login = esc_attr($_POST['user']);
$user_email = esc_attr($_POST['email']);
require_once(ABSPATH.WPINC.'/registration.php');
$sanitized_user_login = sanitize_user($user_login);
$user_email = apply_filters('user_registration_email', $user_email);
if(!is_email($user_email)) $errors[] = 'email non valida';
elseif(email_exists($user_email)) $errors[] = 'questa email è già registrata, bla bla...';
if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'nome utente non valido';
elseif(username_exists($sanitized_user_login)) $errors[] = 'nome utente già esistente';
if(empty($errors)):
$user_pass = wp_generate_password();
$user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);
if(!$user_id):
$errors[] = 'registrazione fallita...';
else:
update_user_option($user_id, 'default_password_nag', true, true);
wp_new_user_notification($user_id, $user_pass);
endif;
endif;
if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
else define('REGISTERED_A_USER', $user_email);
endif;
}
il codice è quasi identico a quello della pagina di registrazione utente.
poi aggiungi il tuo form nel tuo template:
<?php
if(defined('REGISTRATION_ERROR'))
foreach(unserialize(REGISTRATION_ERROR) as $error)
echo "<div class=\"error\">{$error}</div>";
// errori qui, se presenti
elseif(defined('REGISTERED_A_USER'))
echo 'è stata inviata una email a '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
<label>
Utente:
<input type="text" name="user" value=""/>
</label>
<label>
Email:
<input type="text" name="email" value="" />
</label>
<label>
Cancella questo testo:
<input type="text" name="spam" value="some_crappy_spam_protection" />
</label>
<input type="submit" value="registrati" />
</form>
puoi creare un widget con questo, uno shortcode o semplicemente il solito page template...

Sembra ottimo, anche se non sembra funzionare. Ho trovato un plugin che funziona alla grande però, quindi grazie per l'aiuto.

Ci sei quasi, ma non è esattamente quello che mi serve. Ho bisogno di qualcosa che possa essere integrato nel mio template esistente.

Ecco un sito che ho appena finito di progettare usando il login con simplemodal... http://www.purevapes.com/ nota i link di registrazione e login in alto. L'utente non viene mai portato via dal front-end del blog. Puoi incorporarli usando un semplice codice HTML nel tuo template, e reindirizzano l'utente alla pagina principale invece che al pannello di amministrazione. Quindi non sono sicuro di come questo non possa essere 'integrato' in qualsiasi template.

Intendevo "inserito" direttamente nella pagina, non come finestra modale.
Ecco il plugin che ho appena trovato per farlo: http://wordpress.org/extend/plugins/simplr-registration-form/

Gravity Forms è il miglior plugin per moduli di contatto per WordPress, secondo me. La loro ultima versione, in beta, include un add-on per la registrazione utenti. L'ho provato e funziona alla grande. Tuttavia, ha un costo... la licenza per sviluppatori è di 199$.
Pagina dei prezzi http://www.gravityforms.com/purchase-gravity-forms/
Articolo del blog che parla dell'add-on per la registrazione utenti http://www.gravityhelp.com/
Consiglio vivamente questo plugin alla comunità WordPress.
Specifiche dettagliate:
Ecco alcune delle funzionalità dell'Add-On per la Registrazione Utenti:
- Registrazione Utente – Configura un modulo per registrare un utente mappando i campi del modulo ai campi di registrazione disponibili in WordPress.
- Meta Utente – Popola facilmente i meta dati dell'utente come biografia, ID di messaggistica istantanea, nome, cognome e anche meta utente personalizzati per adattarli alle tue esigenze.
- Integrazione BuddyPress – Popola i dati del profilo BuddyPress come parte del processo di registrazione utente. Attualmente compatibile con BuddyPress v1.2.6.
- Integrazione Pagamenti – Richiedi un pagamento prima della registrazione utente. Include supporto per abbonamenti PayPal e la possibilità di cambiare il ruolo dell'utente o eliminarlo se l'abbonamento viene annullato.
- Campo Password – L'Add-On per la Registrazione Utenti aggiunge un campo Password a Gravity Forms per l'uso nei tuoi moduli. Il campo Password include un'opzione di conferma e un controllo integrato della robustezza della password.
- Autore Post – Integra l'Add-On per la Registrazione Utenti e la Creazione di Post in un unico modulo, in modo che l'autore del post creato sia l'utente registrato tramite l'add-on.
- Creazione Sito – Crea automaticamente un sito su un'installazione WordPress in rete (multi-site) e assegna i nuovi utenti creati come Amministratori del sito.

Puoi utilizzare il plugin Theme My Login

Sembra che il tuo plugin possa funzionare alla grande, tranne per il fatto che non riesco a far funzionare il modulo di registrazione. Il modulo di login viene visualizzato correttamente, ma quando tento di accedere al modulo di registrazione, mi porta semplicemente a quello predefinito di WordPress. C'è un modo per visualizzare solo il modulo di registrazione nella pagina?

Ecco un modo semplice e carino in cui ho risolto questo problema:
Copia i nomi dei campi e qualsiasi altro elemento dal modulo di registrazione attuale di WordPress. Assicurati che il tuo modulo personalizzato abbia gli stessi campi nome inclusi quelli nascosti e poi punta semplicemente l'azione del modulo all'URL di registrazione corretto: http://www.yourblog.com/wp-login.php?action=register - Potresti anche voler modificare il reindirizzamento del modulo dopo la registrazione se non ti piace come viene gestito.
C'è anche questo plugin chiamato Insite Login che ti permette di inserire il modulo di registrazione, il modulo di login e altri nelle pagine del tuo sito: http://wordpress.org/extend/plugins/insitelogin/
La prima soluzione dovrebbe comunque fare quello che vuoi ottenere.

Se hai bisogno di più campi nel tuo modulo di registrazione, puoi utilizzare il plugin Profile Builder
Ti permette di personalizzare il tuo sito web aggiungendo moduli front-end per il login, la registrazione e la modifica del profilo attraverso l'uso di shortcode.
