Kullanıcı kayıt formunu bir WordPress sitesinin ön ucuna yerleştirmenin kolay bir yolunu arıyorum. Giriş formunu ön uca yerleştirmek için zaten wp_login_form () kullandım, ancak şimdi kayıt formuyla aynı şeyi yapmam gerekiyor.
Herhangi bir fikir?
Kullanıcı kayıt formunu bir WordPress sitesinin ön ucuna yerleştirmenin kolay bir yolunu arıyorum. Giriş formunu ön uca yerleştirmek için zaten wp_login_form () kullandım, ancak şimdi kayıt formuyla aynı şeyi yapmam gerekiyor.
Herhangi bir fikir?
Yanıtlar:
Jeff Starr, onetrickpony tarafından önerilen
benzer yaklaşımı kullanarak ön uç kaydı, giriş ve şifre kurtarma konusunda harika bir öğretici yazdı . Bunu cevabının bir takibi ve yapmanıza yardımcı olabilecek başka bir kaynak olarak alın: http://digwp.com/2010/12/login-register-password-code/
Şimdi bunu kendiniz nasıl kodlayacağınıza ve bana nasıl güveneceğinize dair iki örneğiniz var - kesinlikle bu (kendi) şekilde yapmaya değer. Bu o kadar zor değil ve size hiçbir eklentinin sunamayacağı özgürlük , esneklik ve yeniden kullanılabilirlik kazandırıyor .
bunu kendiniz halletmek istiyorsanız, işte şunu kullanıyorum:
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;
}
kod, kullanıcı kayıt sayfasındaki kodla neredeyse aynıdır.
ardından formunuzu şablonunuza ekleyin:
<?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>
bununla bir widget, bir kısa kod veya yalnızca normal sayfa şablonu oluşturabilirsiniz ...
home_url()
benim kod formun ana sayfada olduğunu varsayar çünkü geçerli sayfa url ile değiştirmeniz gerektiğini düşünüyorum . get_current_page_url()
Burada başka bir soruya bir fonksiyon gönderdim , hangisini hatırlamıyorum
Gravity Forms, WordPress, IMO için en iyi iletişim formu eklentisidir. Orada beta sürümünde bir kullanıcı kaydı eklentisi var. Denedim ve harika çalışıyor. Ama size mal olacak ... bir geliştirici lisansı için 199 $.
Fiyatlandırma sayfası http://www.gravityforms.com/purchase-gravity-forms/
Kullanıcı kaydı eklentisi hakkında konuşan blog yazısı http://www.gravityhelp.com/
Bu eklentiyi WordPress topluluğuna tavsiye ederim.
Detaylı Özellikler:
Kullanıcı Kaydı Eklentisinin bazı özellikleri şunlardır:
Simplemodal giriş eklentisini deneyin. Kayıt ve girişe izin verir (Kullanıcı kaydını etkinleştirmeniz gerekir) ve çok güzel bir görünüme sahip.
Sen kullanabilir Tema Benim Girişi eklentisi
İşte bunu yapmanın güzel ve kolay bir yolu:
Alan adlarını ve diğer bilgileri geçerli Wordpress kayıt formundan kopyalayın. Özel formunuzun gizli olanlar da dahil olmak üzere aynı ad alanlarına sahip olduğundan emin olun ve sonra form eylemini yalnızca uygun kayıt URL'sine yönlendirin: http://www.yourblog.com/wp-login.php?action=register - Daha sonra isteyebilirsiniz nasıl işlendiğini beğenmezseniz formun kayıttan sonra nasıl yönlendirileceğini değiştirmek için.
Ayrıca, kayıt formunu, giriş formunu ve diğerlerini sitenizdeki sayfalara bırakmanıza izin veren Insite Login adı verilen bu eklenti de vardır: http://wordpress.org/extend/plugins/insitelogin/
İlk çözüm, ne yapmasını istediğinizi yapmalıdır.
Kayıt formunuzda daha fazla alana ihtiyacınız olması durumunda Profile Builder eklentisini kullanabilirsiniz
Kısa kodlar kullanarak giriş, kayıt ve profil düzenleme için ön uç formları ekleyerek web sitenizi özelleştirmenizi sağlar.