WordPress

Kullanıcı Profiline Yeni Alanlar Nasıl Eklerim?

Bu yazı 3 ay veya daha önce yayınlanmış olduğundan görülen linklerde, resimlerde veya kodlarda hata olabilir. Herhangi bir hata ile karşılaşırsanız bana buradan bildirebilirsiniz. Anlayışınız için teşekkür eder, keyifli okumalar dilerim.

Merhaba arkadaşlar bugün internette çok aradığım fakat bulamadığım daha sonra öyle gezerken bulduğum bir kodu size göstericem. Çoğu gelişmiş temalarda gördüğünüz yazar profilleri sayfasında yazarların telefon numaraları, sosyal medya hesapları gibi wordpressin bize sunmadığı ekstra özellikleri kendimiz yaratacağız. Bakın mesela benim temamda aşağıdaki gibi gözüküyor.

yazar_ek_alan2

İlk önce yapmamız gereken aşağıdaki kodu functions.php‘e ?>’den önce veya <?php’den hemen sonra eklemek, aşağıda verdiğim kodda size döngüyü de gösterdim yani hangi kodları kopyalayıp çoğaltmanız gerekecek onlarıda göstericem.

function custom_profile_fields( $user ) { ?>
<h3>Sosyal Profiller</h3>
<table class="form-table">
<!-- Döngü Başı -->
<tr>
<th><label for="twitter">Twitter</label></th>
<td>
<input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Twitter adresinizi girin.</span>
</td>
</tr>
<!-- Döngü Sonu -->
<!-- Döngü Başı -->
<tr>
<th><label for="facebook">Facebook</label></th>
<td>
<input type="text" name="facebook" id="facebook" value="<?php echo esc_attr( get_the_author_meta( 'facebook', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Facebook adresinizi girin.</span>
</td>
</tr>
<!-- Döngü Sonu -->
</table>
<?php }

Yukarıda ki kodları ekledikten sonra Kullanıcı Profilinize girdiğiniz zaman aşağıdaki gibi bir görüntü ile karşılacaksınız.
sosya_profiller

Gelelim bu alanları çoğaltmak istiyorsak neler yapmalıyız olayına. Aşağıda verdiğim kodu kopyalayacaksınız sonra name, id ve value kısımlarını her yeni alanda değiştirmeniz gerekiyor.

<!-- Döngü Başı -->
<tr>
<th><label for="facebook">Facebook</label></th>
<td>
<input type="text" name="facebook" id="facebook" value="<?php echo esc_attr( get_the_author_meta( 'facebook', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Facebook adresinizi girin.</span>
</td>
</tr>
<!-- Döngü Sonu -->

Aşağıda verdiğim kodu da functions.php e yazdığımız kodun hemen sonrasına yapıştırıyoruz ve bunlardada yeni alan eklediğimiz zaman ekleme yapıyoruz.

add_action( 'personal_options_update', 'save_profile_fields' );
add_action( 'edit_user_profile_update', 'save_profile_fields' );
function save_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
/* Yeni alan eklediğiniz zaman aşğıdakileride coğaltıyoruz. ID'de tanımladığımızı aşağıdaki 'twitter' kısmına yazıyoruz. */
update_usermeta( $user_id, 'twitter', $_POST['twitter'] );
update_usermeta( $user_id, 'facebook', $_POST['facebook'] );
}

Bu işlemleri de yaptıktan sonra geriye sadece bu kodları çekmek kaldı aşağıda verdiğim kodda ‘twitter’ kısmını değiştirerek eklediğiniz alanları çekebilirsiniz.

<?php the_author_meta( 'twitter' ); ?>
8 comments
  1. Mert Köseoğlu

    Geçenlerde bir yazar ekledim. Bu sorunla karsılastım, fakat çözemediğim için yazar kısmında ki boslukları doldurmakla yetindim. Azmin zaferi diyelim ugrasmıs bulmussun eline saglık.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

PREMIUM WORDPRESS TEMALARI
wordpress emlak teması
wordpress rent a car teması v2
%d blogcu bunu beğendi: