28 Ağustos 2010 Cumartesi

Kullanıcı Profiline Yeni Alanlar Ekliyoruz

WordPress'teki üyelik sistemini etkin kullananlar, çoğu zaman kullanıcı profilindeki bilgilerin yetersiz olduğunu düşünürler. Bunu gidermek için çeşitli eklentiler mevcut, ama eklenti kullanmadan da kullanıcı profiline yeni alanlar ekleyebilir ve bunları sitenizde gösterebilirsiniz ya da kullanıcılarla ilgili yazacağınız, kullanıcılar ile ilgili eklentilerde bahsedeceğim yöntemi kullanmak isteyebilirsiniz. Senaryomuz şu; kullanıcının profil ekranına, kullanıcının Doğum tarihini ve Twitter kullanıcı adını girebileceği iki alan ekleyelim. Ardından da kullanıcının girdiği bu bilgileri sitemizde nasıl gösterebileceğimize bakalım. Tabi biz basit iki alan ekliyoruz ama siz yöntemi inceleyerek, daha farklı ve fazla alan ekleyebilirsiniz.

Alanlarımızı Ekliyoruz

Aşağıdaki kodları temanızın Tema fonksiyonları (functions.php) dosyasına uygun şekilde ekleyiniz (açıklamalar kod içerisindedir).

PHP:
  1. add_action( 'show_user_profile', 'ekstra_bilgi_alanlarini_goster' );
  2. add_action( 'edit_user_profile', 'ekstra_bilgi_alanlarini_goster' );
  3. //Kullanıcı profil ekranına girildiğinde
  4. //bilgi alanlarımızın gösterileceği aşağıdaki fonksiyonu
  5. //çağırıyoruz.
  6. function ekstra_bilgi_alanlarini_goster( $user ) { ?>
  7. Ekstra Kullanıcı Bilgileri

  8. class="form-table">
  9. "text" name="dtarihi" id="dtarihi" value="ID ) ); ?>" class="regular-text" />
  10. class="description">Lütfen doğum tarihinizi giriniz (gg.aa.yyyy).
  11. "text" name="twitter" id="twitter" value="ID ) ); ?>" class="regular-text" />
  12. class="description">Lütfen Twitter kullanıcı adınızı giriniz.
  13. }

Kod ile alan eklemede kullandığımız fonksiyonumuzun, kullanıcı profili gösterilirken ya da düzenlenirken çalıştırılmasını sağlıyoruz. Fonksiyon içerisinde ise tablo kullanarak form elemanlarımızı uygun şekilde ekliyoruz. Kullandığımız tablo yapısı form alanlarımızın daha düzgün çıkmasını sağlıyor. Kodu ekleyip, bir kullanıcının bilgilerini görüntülediğinde aşağıdaki resimde göreceğiniz üzere bilgilerin en altında alanlarımız oluşacak. Eklediğimiz bilgi alanlarının, kullanıcı profilindeki görünümü Tabi ki bu haliyle girdiğiniz bilgiler kaydedilmeyecektir. Bu işlem için eklememiz gereken birkaç satır daha var.

Bilgileri Ekleyip/Güncelliyoruz

Aşağıdaki kodları, yukarıdaki kodların devamına uygun şekilde ekleyiniz.

PHP:
  1. add_action( 'personal_options_update', 'ekstra_bilgileri_kaydet' );
  2. add_action( 'edit_user_profile_update', 'ekstra_bilgileri_kaydet' );
  3. function ekstra_bilgileri_kaydet( $user_id ) {
  4. if ( !current_user_can( 'edit_user', $user_id ) )
  5. return false;
  6. //Kullanıcının yetkisi varsa güncelle
  7. //Her bir alan için aşağıdaki satırları çoğaltmanız
  8. //gerekiyor. Kod içerisindeki alan adlarının
  9. //kullanıcı profiline eklediklerinizle aynı olması
  10. //gerektiğini unutmayın.
  11. //Ayrıca bilgileriniz özel bir formatta olacaksa
  12. //onu kontrol etmeyi ve filtreleme yapmayı unutmayın.
  13. update_usermeta( $user_id, 'dtarihi', $_POST['dtarihi'] );
  14. update_usermeta( $user_id, 'twitter', $_POST['twitter'] );
  15. }

Kodu açıklamaya sanırım gerek yok. Kodu ekledikten sonra kullanıcı bilgilerini görüntüleyip, ilgili alanları doldurdurun ve Profili Güncelleyin. Girdiğiniz bilgilerin de güncellendiğini göreceksiniz. Ekstra Bilgi Alanlarımız Güncellendi

Ekstra Bilgileri Sitemizde Gösteriyoruz

Girilen bu alanlardaki bilgileri sitenizin bir yerlerinde göstermek isterseniz, the_author_meta() fonksiyonu aşağıdaki gibi kullanabilirsiniz.

Girilen bilgiler veritabanınızda wp_usermeta tablosunda tutulmaktadır.

Hiç yorum yok:

Yorum Gönder