Ich suche nach einer einfachen Möglichkeit, das Benutzerregistrierungsformular im Front-End einer WordPress-Site zu platzieren. Ich habe bereits wp_login_form () verwendet, um das Anmeldeformular im Front-End zu platzieren, aber jetzt muss ich dasselbe mit dem Anmeldeformular tun.
Irgendwelche Ideen?
Jeff Starr hat ein großartiges Tutorial über Front-End-Registrierung, Login und Passwortwiederherstellung geschrieben
ähnlich vorgehen wie vorgeschlagen von onetrickpony . Nehmen Sie dies als Folgemaßnahme zu seiner Antwort und als eine weitere Ressource, die Ihnen bei der Erledigung helfen könnte:
http://digwp.com/2010/12/login-register-password-code/
Jetzt haben Sie zwei Beispiele, wie Sie dies selbst codieren und mir vertrauen können - es lohnt sich definitiv, es auf diese (Ihre eigene) Weise zu tun. Es ist nicht so schwer und gibt dir Freiheit , Flexibilität und Wiederverwendbarkeit , die kein Plugin bieten kann.
für den Fall, dass Sie dies selbst erledigen möchten, verwende ich Folgendes:
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[] = 'provide a user and email';
if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';
$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[] = 'invalid e-mail';
elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';
if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';
if(empty($errors)):
$user_pass = wp_generate_password();
$user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);
if(!$user_id):
$errors[] = 'registration failed...';
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;
}
der Code ist fast identisch mit dem auf der Benutzeranmeldeseite.
dann fügen Sie Ihr Formular in Ihre Vorlage ein:
<?php
if(defined('REGISTRATION_ERROR'))
foreach(unserialize(REGISTRATION_ERROR) as $error)
echo "<div class=\"error\">{$error}</div>";
// errors here, if any
elseif(defined('REGISTERED_A_USER'))
echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
<label>
User:
<input type="text" name="user" value=""/>
</label>
<label>
Email:
<input type="text" name="email" value="" />
</label>
<label>
Delete this text:
<input type="text" name="spam" value="some_crappy_spam_protection" />
</label>
<input type="submit" value="register" />
</form>
sie können entweder ein Widget mit diesem, einem Shortcode oder nur der üblichen Seitenvorlage erstellen ...
Gravity Forms ist das beste Kontaktformular-Plugin für WordPress, IMO. Die neueste Beta-Version enthält ein Add-On für die Benutzerregistrierung. Ich habe es versucht und es funktioniert großartig. Es kostet Sie aber ... es ist 199 $ für eine Entwicklerlizenz.
Preisliste http://www.gravityforms.com/purchase-gravity-forms/
Blogbeitrag über das Benutzerregistrierungs-Add-on http://www.gravityhelp.com/
Ich kann dieses Plugin der WordPress-Community nur empfehlen.
Detaillierte Spezifikationen:
Hier sind einige der Funktionen des Benutzerregistrierungs-Add-Ons:
Probieren Sie das simplemodal Login Plugin aus. Es ermöglicht die Registrierung und Anmeldung (Sie müssen die Benutzerregistrierung aktivieren) und es sieht sehr gut aus.
Falls Sie mehr Felder in Ihrem Registrierungsformular benötigen, können Sie das Profile Builder Plugin verwenden.
Sie können Ihre Website anpassen, indem Sie Front-End-Formulare zum Anmelden, Registrieren und Bearbeiten von Profilen mithilfe von Shortcodes hinzufügen.
Sie können Theme My Login Plugin verwenden
Hier ist eine nette und einfache Art, wie ich das gemacht habe:
Kopieren Sie die Feldnamen und andere Informationen aus dem aktuellen Wordpress-Registrierungsformular. Stellen Sie sicher, dass Ihr benutzerdefiniertes Formular die gleichen Namensfelder enthält, einschließlich der ausgeblendeten, und verweisen Sie die Formularaktion lediglich auf die richtige Registrierungs-URL: http://www.yourblog.com/wp-login.php?action=register - Sie können dann auch ändern, wie das Formular nach der Registrierung weitergeleitet wird, wenn Sie nicht möchten, wie es behandelt wird.
Es gibt auch dieses Plugin mit dem Namen Insite Login, mit dem Sie das Registrierungsformular, das Anmeldeformular und andere auf Seiten Ihrer Website einfügen können: http://wordpress.org/extend/plugins/insitelogin/
Die erste Lösung sollte jedoch das tun, was Sie möchten.