Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 7 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
WordPress’te içerik, kullanıcı, ayar, yorum ve sınıflandırma bilgileri farklı tablolarda tutulur. Tablo adlarının başındaki wp_ bölümü sabit değildir; wp-config.php içindeki $table_prefix değerine göre değişebilir. Bu nedenle sorgu yazarken kendi sitenizdeki gerçek ön eki kullanın.

Bir yazı veya sayfa tek bir tabloda bulunmaz. Ana içerik wp_posts tablosundadır; özel alanlar wp_postmeta tablosunda, kategori ve etiket bağlantıları ise sınıflandırma tablolarında tutulur. Bu yapı, bir içeriği incelerken birden fazla tabloyu birlikte değerlendirmeniz gerektiği anlamına gelir.

En sık kullanılan tablolar​


TabloNe tutar?Pratik kullanım
wp_postsYazı, sayfa, ek dosya, revizyon, menü öğesi ve özel içerik türleriBaşlık, içerik, durum, yazar ve yayın tarihini bulma
wp_postmetaİçeriğe ait anahtar-değer biçimindeki özel alanlarÖzel alan, SEO veya sayfa oluşturucu verisini inceleme
wp_optionsSite ayarları, eklenti ayarları ve geçici seçeneklerSite adresi veya eklenti yapılandırmasını kontrol etme
wp_users ve wp_usermetaKullanıcı hesabı ve kullanıcıya ait ek bilgilerKullanıcı adı, e-posta ve rol bilgisini inceleme
wp_terms, wp_term_taxonomy ve wp_term_relationshipsTerimler, bunların kategori/etiket türü ve içerik bağlantılarıBir yazının hangi kategori veya etikete bağlı olduğunu bulma
wp_comments ve wp_commentmetaYorumlar ve yorumlara ait ek verilerYorum durumu, yazarı ve bağlı içeriği kontrol etme

wp_termmeta terimlere bağlı ek anahtar/değer bilgilerini tutar. wp_links eski blogroll sistemi için kalabilir. Kullanıcı rolü doğrudan users tablosunda tek rol sütunu değildir; usermeta içindeki site prefix’ine bağlı capabilities verisiyle ilişkilidir. Multisite’ta users/usermeta ağ genelinde paylaşılır, siteye özgü içerik tablolarının prefix’i farklıdır.

Tablolar arasındaki ilişki nasıl çalışır?​


wp_posts.ID değeri, ilgili içeriğin kimliğidir. Aynı değer wp_postmeta.post_id alanında özel alanları, wp_comments.comment_post_ID alanında yorumları bulmak için kullanılır. Kullanıcı bağlantısı için wp_posts.post_author değeri wp_users.ID alanına karşılık gelir.

Bu alan eşleşmeleri mantıksal ilişkilerdir; çekirdek tablolar arasında her ilişki için veritabanının zorunlu tuttuğu foreign key/cascade bulunduğunu varsaymayın. Native WordPress API’si cache/hook/ilişki tutarlılığını da yönetir. Kategori ve etiketlerde temel bağlantı yapısı üç parçalıdır. wp_terms terimin adını ve kısa adını tutar. wp_term_taxonomy, bu terimin kategori mi, etiket mi veya özel bir sınıflandırma mı olduğunu belirtir. wp_term_relationships ise içerik kimliğini sınıflandırma kaydıyla eşleştirir. Yalnızca wp_terms tablosuna bakarak bir terimin hangi içerik türünde kullanıldığını kesin olarak anlayamazsınız.

Somut örnek: bir yazının bilgilerini bulma​


Örneğin yazı kimliğinin 42 olduğunu varsayalım. Salt okunur bir veritabanı aracında aşağıdaki sorgular, yazının temel kaydını ve özel alanlarını ayrı ayrı gösterir:

Kod:
SELECT ID, post_title, post_status, post_type, post_author
FROM wp_posts
WHERE ID = 42;

SELECT meta_key, meta_value
FROM wp_postmeta
WHERE post_id = 42;

İlk sorguda sonuç dönüyorsa içerik wp_posts tablosunda bulunur. İkinci sorgunun boş dönmesi, yazının özel alanı olmadığı veya eklentinin veriyi kendi tablosunda tuttuğu anlamına gelebilir; bu durum yazının bozuk olduğunu tek başına göstermez. Sorgu hata verirse önce wp_ ön ekinin sitenizde farklı olup olmadığını ve sütun adlarını kontrol edin.

Bir yazının kategori ve etiketlerini görmek için ilişkili tabloları birleştirmek gerekir:

Kod:
SELECT p.ID, p.post_title, t.name, tt.taxonomy
FROM wp_posts AS p
JOIN wp_term_relationships AS tr ON tr.object_id = p.ID
JOIN wp_term_taxonomy AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
JOIN wp_terms AS t ON t.term_id = tt.term_id
WHERE p.ID = 42;

Diğer tablolar ve eklenti verileri​


wp_options sitesel ayarları ve bazı geçici kayıtları tutar. Site adresi gibi kritik değerleri doğrudan değiştirmek, yanlış değer girildiğinde yönetim panelini veya siteyi erişilemez bırakabilir. wp_links ise eski bağlantı özelliğinden kalan bir tablodur; her kurulumda aktif olarak kullanılmayabilir.

Çoklu site kurulumlarında her alt site için içerik, yorum, terim ve seçenek tablolarının numaralı kopyaları bulunabilir. Ağ kullanıcıları ve ağ ayarları ise ayrı ağ tablolarında tutulur. Bu nedenle çoklu sitede yalnızca wp_posts tablosunu incelemek tüm sitelerin verisini göstermez.

Eklentiler, çekirdek tablolardaki meta alanlarını kullanabileceği gibi kendi tablolarını da oluşturabilir. Bir ayarın hangi tabloda olduğunu ararken önce eklentinin belgelerine, ardından tablo adlarına ve option_name veya meta_key değerlerine bakın. Değişiklik yapmadan önce tam veritabanı yedeği alın; inceleme için SELECT sorguları kullanın ve UPDATE veya DELETE sorgularını doğrulamadan çalıştırmayın.

Kaynaklar​



Sık sorulan sorular​


WordPress tablo ön eki neden wp_ olmayabilir?​


Kurulum sırasında farklı bir tablo ön eki seçilebilir. Gerçek ön eki wp-config.php içindeki $table_prefix değerinden veya veritabanı yönetim aracındaki tablo adlarından kontrol edin.

Bir eklentinin hangi tabloyu kullandığını nasıl anlarım?​


Eklentinin belgelerinde tablo yapısını arayın ve veritabanında benzer ön eke sahip tabloları inceleyin. Eklenti kaldırıldığında tabloların otomatik silinip silinmediği eklentiye bağlı olduğundan, silme işlemini yedek almadan yapmayın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic