WordPress özel kullanıcı profil alanı nasıl eklenir

WordPress özel kullanıcı profil alanı nasıl eklenir
59

Bugünkü wordpress konumuz özel kullanıcı profil alanının nasıl ekleneceği. Daha detaylandırmak gerekirse bugün sizlere wordpress kullanıcı profil sayfasına yeni alanın nasıl ekleneceğini anlatacağım.

Anlatacağım yöntem ile site yazarlarının sosyal medya hesapları için yeni bir alan yaratabilirsiniz örnek olarak bu yazımda bende bunu anlatacağım. Benim işime facebook, twitter sosyal medya linklerini çekmekten çok daha fonksiyonel bir yazar sayfası yaratmak için yaradı sizde bu yazıdan yola çıkarak yazar sayfalarını daha fonksiyonel hale getirebilirsiniz.

Bu yazımızda işlem yaparken wp_usermeta tablosunu kullanacağız.

wprofilalani

Kullanıcı Profili Icin Yeni Alanlar Ekleyelim

İlk olarak temanızın functions.php dosyasının içerisine aşağıdaki kodları ekleyin.

add_action( 'show_user_profile', 'add_extra_social_links' );
add_action( 'edit_user_profile', 'add_extra_social_links' );
function add_extra_social_links( $user )
{
 ?>
 <h3>Sosyal Medya Hesaplarınız</h3>
<table class="form-table">
 <tr>
 <th><label for="facebook_profile">Facebook Profil</label></th>
 <td><input type="text" name="facebook_profile" value="<?php echo esc_attr(get_the_author_meta( 'facebook_profile', $user->ID )); ?>" class="regular-text" />
 <p class="description">Facebook profil linkiniz</p></td>
 </tr>
<tr>
 <th><label for="twitter_profile">Twitter Profil</label></th>
 <td><input type="text" name="twitter_profile" value="<?php echo esc_attr(get_the_author_meta( 'twitter_profile', $user->ID )); ?>" class="regular-text" />
 <p class="description">Twitter profil linkiniz</p></td>
 </tr>
<tr>
 <th><label for="google_profile">Google+ Profil</label></th>
 <td><input type="text" name="google_profile" value="<?php echo esc_attr(get_the_author_meta( 'google_profile', $user->ID )); ?>" class="regular-text" />
 <p class="description">Google Plus profil linkiniz</p></td>
 </tr>
 </table>
 <?php
}

Eklediğiniz kodlar sayesinde admin panelinde bulunan kullanıcı profil alanına sosyal medya hesapları için 3 yeni alan yarattınız, tebrikler.

Kullanıcı Profil alanını kaydedelim

Yapılan değişikliklerin depolanması için yeni bir eylem eklememiz gerekmekte. Kaydetme eylemi için edit_user_profile_update ve personal_options_update eylemlerini kullanmamız gerekiyor.

Daha sonra kullanıcı meta verilerini güncellemek için $_POST değişkenini kullanacağız. Kullanıcı meta verilerini kullanmak için update_user_meta() wordpress fonksiyonunu kullanacağız.

update_user_meta( $user_id, $meta_key, $meta_value, $prev_value );

Bu fonksiyon için 4 farklı parametre kullanacağız.

  • $user_id
  • $meta_key
  • $meta_value
  • $prev_value

Aşağıdaki kodu temanızın functions.php dosyasının içerisine ekleyin.

add_action( 'personal_options_update', 'save_extra_social_links' );
add_action( 'edit_user_profile_update', 'save_extra_social_links' );
function save_extra_social_links( $user_id )
{
 update_user_meta( $user_id,'facebook_profile', sanitize_text_field( $_POST['facebook_profile'] ) );
 update_user_meta( $user_id,'twitter_profile', sanitize_text_field( $_POST['twitter_profile'] ) );
 update_user_meta( $user_id,'google_profile', sanitize_text_field( $_POST['google_profile'] ) );
}

Şimdide bunu nasıl kullanacağımızdan bahsedelim.

<?php get_the_author_meta( $field, $userID ); ?>

$field yani görev yerini değiştirerek kullanabilirsiniz. Örneği aşağıda twitter alanı için paylaştım.

the_author_meta( 'twitter_profile', $userID );

Yorum Yap