WordPress Özel Profil Alanları Oluşturmak

Bu videomda sizlere profil için özel alanlar oluşturmayı ve bu alanları tema içerisinde kullanmayı gösterdim.

Not: Makale boyunca yazacağımız tüm fonksiyonları tema klasörümüz içerisinde functions.php dosyası içerisinde yazıyoruz.

Profil ve kullanıcı düzenleme sayfalarında özel alanların gösterilmesi

Bunun için bir fonksiyon yazmalı ve bu fonksiyonu önceden tanımlı 2 fonksiyona (show_user_profileedit_user_profile) kanca atmalıyız.

function show_extra_profile_fields($user)
{
    ?>
    <h2>Sosyal Hesaplar</h2>

    <table class="form-table">
        <tbody>
        <tr>
            <th>
                <label for="facebook">
                    Facebook Adresi
                </label>
            </th>
            <td>
                <input type="text" id="facebook" name="facebook" value="<?php echo esc_attr(get_the_author_meta('facebook', $user->ID)) ?>" class="regular-text">
            </td>
        </tr>
        <tr>
            <th>
                <label for="twitter">
                    Twitter Adresi
                </label>
            </th>
            <td>
                <input type="text" id="twitter" name="twitter" value="<?php echo esc_attr(get_the_author_meta('twitter', $user->ID)) ?>" class="regular-text">
                <p class="description">
                    Lütfen sadece twitter kullanıcı adınızı yazın!
                </p>
            </td>
        </tr>
        <tr>
            <th>
                <label for="instagram">
                    Instagram Adresi
                </label>
            </th>
            <td>
                <input type="text" id="instagram" name="instagram" value="<?php echo esc_attr(get_the_author_meta('instagram', $user->ID)) ?>" class="regular-text">
            </td>
        </tr>
        </tbody>
    </table>

    <?php
}

add_action('show_user_profile', 'show_extra_profile_fields');
add_action('edit_user_profile', 'show_extra_profile_fields');

esc_attr()
WordPress’in önceden tanımlı güvenlik için kullanılan fonksiyonudur.get_the_author_meta()
Özel alanların değerlerini almamız için kullanılan fonksiyondur. İlk parametre özel alanın ismi, ikinci parametre ise varsa üye id’sidir.

Özel alanların güncellenmesi

Bunun içinde bir fonksiyon yazmalı ve özel alanlarımızı güncellemeliyiz.

function update_extra_profile_fields($user_id)
{
    if (current_user_can('edit_user', $user_id)){
        update_user_meta($user_id, 'facebook', $_POST['facebook']);
        update_user_meta($user_id, 'twitter', $_POST['twitter']);
        update_user_meta($user_id, 'instagram', $_POST['instagram']);
    }
}

add_action('personal_options_update', 'update_extra_profile_fields');
add_action('edit_user_profile_update', 'update_extra_profile_fields');

current_user_can()
Mevcut kullanıcı için izin kontrolü yapan fonksiyondur. Burada edit_user yani bilgilerini düzenleme izninin olup olmadığını kontrol ettik.

Tema içerisinde kullanımı

Bunun için tema klasörümde author-bio.php dosyamı açıyorum. Ve uygun bir kısma, göstermek istediğim özel alanı şu şekilde yazıyorum;

<?php echo get_the_author_meta('facebook');

Burada facebook yerine siz kendi özel alan isminizi yazacaksınız. Benim örneğimde bu facebook, twitter ya da instagram olabilirdi ????

Bir cevap yazın

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