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

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' ); ?>

Merhaba! Ben Burak. 2016 yılında Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü’nden mezun oldum. Lise yıllarında HTML & CSS‘e, Üniversite yıllarında WordPress ve Matlab‘e adım attım. Lisans tezimi Matlab üzerinden program yazarak teslim ettim. Çeşitli projeler için WordPress tabanlı yazılımlar geliştirdim.

8 Yorum

Bir Cevap Yazın