20 Aralık 2008

WordPress Veritabanı Tablo Yapısı

WordPress Yorum Ekle

WordPress veritabanında tuttuğu tablo sayısı bakımından belki de en az tablo kullanan içerik yönetim sistemlerinden biridir. Gerçi tablolarda kullandığı yapıyı pek tasvip etmiyorum ama yine de bazı yönlerden yaratıcı özellikler de var. WP tablo yapısını öğrenmek özellikle eklenti, bileşen yazmak isteyenler için çok gerekli.


WordPress Veritabanında Kullanılan Tablolar

İlk kurulumda WP veritabanında 10 tane tablo oluşturuyor. Tablo adlarının ön eki sizin sitenizde farklı olabilir. Yazımda ön ek olarak standart ön ek olan wp_ 'yi kullanacağım. Sitenizin wp-config.php dosyasında bu ön ekin ne olduğunu bulabilirsiniz.

wp_comments Tablosu

Sitenizdeki yorumlar bu tabloda tutularlar. Tablo içerisindeki önemli alanlar ise;
comment_ID - Yorumun ID'si
comment_post_ID - Yorumun ait olduğu yazı, sayfanın ID'si
comment_author - Yorum yazarının adı
comment_author_email - Yorum yazarının e-posta adresi
comment_approved - Yorumun onaylanıp, onaylanmadığı
comment_type - Yorumun türü. Yorum mu, geri izleme mi olduğu. Yorum olduğunda değeri boş, geri izleme olduğunda değeri ping
user_id - Yorumu yazan kayıtlı bir üyeyse onun ID'si, kayıtlı değilse değeri 0

wp_links Tablosu

Bağlantılar bölümünde eklediğiniz bağlantılar bu tabloda tutulurlar. Tablo içerisindeki önemli alanlar şunlar;
link_id - Bağlantının ID'si
link_url - Bağlantının adresi
link_name - Bağlantının adı
link_image - Bağlantı için girdiğiniz görselin adresi
link_category - Bağlantının kategorisi. Varsayılan olarak bütün bağlantılar, Bağlantılar isimli bir kategoriye eklenirler ancak isterseniz bağlantılar için de kategori oluşturup, bağlantıları kategorilere ayırabilirsiniz.

wp_options

Yönetim panelinde yaptığınız ayarlar ve seçeneklerin kaydedildiği tablodur. Eklenti ve bileşenlerde de yaptığınız ayarlar çoğu zaman yine bu tabloda tutulurlar. Tablonun önemli alanları şunlar;
option_id - Seçeneğin ID'si
blog_id - WordPress Mu için seçeneklerin hangi günlüğe ait olduğu
option_name - Seçeneğin adı, örneğin; home, siteurl, blogname, blogdescription
option_value - Seçeneğin değeri
auto_load - Seçeneğin otomatik yüklenip, yüklenmeyeceği.

wp_postmeta Tablosu

Yazı ve sayfalara eklenen özel alanların kaydedildiği tablodur, ayrıca bazı eklentiler de buraya bilgi kaydedebilmekteler, örneğin yazı okunma sayılarını takip eden eklentiler. Tablonun önemli alanları şunlar;
meta_id - Özel alanın ID'si
post_id - Özel alanın ait olduğu yazı/sayfa ID'si
meta_key - Özel alanın adı, eğer adın başında _ (alt çizgi) karakteri varsa, o özel alan yazı yazma ekranında görünmez.
meta_value - Özel alanın değeri

wp_posts Tablosu

WordPress'in temel tablosu olup, eklenen yazı/sayfaların başlık, içerik vs. gibi bilgileri buraya kaydedilir. Tablonun önemli alanları şunlar;
ID - Yazı/Sayfanın ID'si
post_author - Yazının yazarının üye ID'si
post_date_gmt - Yazının yerel saatteki yazıldığı tarih
post_content - Yazı içeriği
post_title - Yazı başlığı
post_category - WP 2.3 ile birlikte bir fonksiyonu kalmadı
post_excerpt - Yazıya girilen özet
post_status - Yazının yayınmlanma/taslak/inceleme bekliyor durumları
comment_status - Yorumların açık olup, olmadığı
ping_status - Geri izlemenin açık olup, olmadığı
post_name - Yazının kalıcı bağlantılarda kullanılan adı
post_modified_gmt - Yazının en son düzenlendiği yerel saatteki tarih
guid - Yazının adresi
post_type - Yazının türü. Aldığı değerler, post - yazı, page - sayfa, revision - revizyon
comment_count - Yazıya yapılmış olan yorum sayısı

wp_terms Tablosu

Yazı kategorileri, etiketler, bağlantı kategorilerinin kaydedildiği tablodur. Önemli alanları şunlar;
term_id - Kategori ve Etiketin (term) ID'si
term_name - Term'in adı
term_slug - Term'in kalıcı bağlantıda kullanılan adı
term_group - Henüz bir halta yaramıyor

wp_term_relationships

Yazı ve bağlantıların kategoriler ve etiketlerle ilişkisi kaydedilir. Bir yazının hangi kategoriye ait olduğu, yazının etiketlerinin neler olduğu, bağlantıların kategorisi gibi bilgiler kaydedilir. Önemli alanları şunlar;
object_id - Term'in ait olduğu yazı, bağlantının ID'si
term_taxonomy_id - Term'in ID'si
term_order - Term'in sırası ama şu an kullanılmıyor

wp_term_taxonomy Tablosu

Term'in ne olduğu kaydedilir. Term'in bir kategori mi, etiket mi, bağlantı kategorisi mi olduğu kaydedilir.
term_taxonomy_id - Satır ID'si
term_id - Term'in ID'si
taxonomy - Term'in türü. Alabileceği değerler category - Kategori, link_category - Bağlantı kategorisi, post_tag - etiket
description - Term için girilmiş olan açıklama
parent - Term bir alt kategori vs. ise ana kategorinin ID'si
count - Kategori içerisindeki yazı sayısı, etiketin kullanıldığı yazı sayısı, bağlantı kategorisinde bulunan bağlantı sayısı

wp_usermeta Tablosu

Siteye kayıt olan üyelerle ilgili tutulan ekstra kullanıcı bilgilerinin kaydedildiği tablodur. Bu tabloyu kullanan bir eklenti yazarak üyelere ait ekstra bilgileri kendiniz de kaydedebilirsiniz. Önemli alanları şunlardır;
umeta_id - Bilginin ID'si
user_id - Bilginin ait olduğu üye ID
meta_key - Bilginin adı
meta_value - Bilginin değeri

wp_users Tablosu

Üyelerin kaydedildiği tablodur.
ID - Üyenin ID'si
user_login - Üyenin giriş yaparken kullandığı kullanıcı adı
user_pass - Üyenin şifresi
user_nicename - Üyenin kalıcı bağlantılarda kullanılan adı
user_email - Üyenin e-posta adresi
user_url - Üyenin site adresi
user_registered - Üyenin kayıt tarihi
display_name - Üyenin sitede görünen adı

Gördüğünüz gibi WordPress tablo yapısı çok basit bir sistem, phpmyadmin'de tablolara şöyle bir baksanız dahi neyin ne olduğunu kolaylıkla anlayabilir, tabloları kullanabilirsiniz. Tabloları kullanırken, fonksiyonlarınızda $wpdb değişkenini global değişken olarak tanımladıktan sonra örneğin posts tablosunu kullanmak için $wpdb->posts değişkenini kullanabilirsiniz. Ayrıca veritabanıyla ilgili önceki yazılarıma buradan ulaşabilirsiniz.


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=581.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“WordPress Veritabanı Tablo Yapısı” yazısı için 3 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. müJdaT dedi ki:

    Bu harika paylaşım için teşekkürler. Her ne kadar bende bir blogcu olsam da, Veritabanım da bir sorun çıktığı zaman kaynağını bulmam zor oluyor. Bu yazınız sayesinde en azından sorunun kaynağını kolayca bulabileceğim (:

  2. serkan dedi ki:

    Körün istediği bir göz allah vermiş iki göz 🙂 çok sağol hocam konuya cevap yazarken tamda aklımdan geçiyodu böyle bi makale yazsa biri diye ... tekrar tekrar teşekkürler.

  3. Yakup TAŞLIBEYAZ dedi ki:

    Tebrikler Güzel Anlatım Olmuş Devamı Gelir İnşllah