Yazıya ait tüm meta değerlerini çekmek

WordPress hali hazırda sizin belirttiğiniz meta değerlerini (metakey) çekme yetisine sahip fonksiyonları barıdnrıyor. Ama bununla yetinemeyecek olduğunu düşündüğümüz arkadaşlar için bir fonksiyonum var. Bir yazıya ait tüm meta değerleri getiren bu fonksiyonu kullanmak çok kolay. Kodu functions.php dosyasının içerisine aktarın ve nerede istiyorsanız (misal single.php) kullanın. Bu fonksiyon çağırıldığında dönen veri tüm meta verilerini dökecektir.

Kod

Aşağıda belirtilen kod temanızın ve sisteminizin en önemli dosyası olan functions.php dosyasına müdahale gerektirmektedir. Bu dosya wp-content/themes/temanızınadı/ klasöründe bulunmaktadır. Dosyaya müdahale etmeden lütfen yedek alınız.

Bu kodu kullanabilmek için functions.php dosyanıza eklemeniz gerektiğini ve ondan sonra da çağırmanız gerektiğini unutmayın. burada söylediğim çağırmak fonksiyonu benim _fonksiyonum(); olarak kullanmak anlamındadır.

function get_post_meta_all($post_id){
    global $wpdb;
    $data   =   array();
    $wpdb->query("
        SELECT `meta_key`, `meta_value`
        FROM $wpdb->postmeta
        WHERE `post_id` = $post_id
    ");
    foreach($wpdb->last_result as $k => $v){
        $data[$v->meta_key] =   $v->meta_value;
    };
    return $data;
}

Güncelleme

Twitter üzerinden aldığım geri dönüşler doğrultusunda WordPress üzerinde bulunan kodu da ekleyeyim. WordPress’in kök paketinde bulunan get_post_meta() fonksiyonu da aynı işi yapmakta. Custom query buaşan fonksiyonları sevmiyorsanız ya da bu şekile veritabanından data çekmek istemiyorsanız aşağıdaki düzeni kullanabilirsiniz.

get_post_meta($post->ID);

Selametle