WordPress Kategori ID Bulma: Tüm Yöntemler ve Örnekler

WordPress kategori ID’sini yönetim paneli, REST API, WP-CLI, PHP veya veritabanından bulun. WooCommerce örnekleri ve sorun çözümleriyle kapsamlı rehber.

WordPress kategori ID’sini bulmak için Yazılar → Kategoriler bölümünü açın, kategorinin adına tıklayın ve adres çubuğundaki tag_ID= ifadesinden sonra gelen sayıyı okuyun. Adreste tag_ID=42 yazıyorsa kategori ID’si 42 olur. Bunun için eklenti kurmanız veya kod değiştirmeniz gerekmez.

Bu rehberde önce yönetim panelindeki en hızlı yöntemi, ardından REST API, WP-CLI, PHP ve salt okunur veritabanı sorgusunu bulacaksınız. WooCommerce ürün kategorileri, üst ve alt kategoriler ile doğru ID’ye rağmen çalışmayan filtreler de ele alınıyor. Örneklerdeki alan adları, isimler ve sayılar açıklama amacıyla kullanılmıştır.

WordPress kategori ID’si nedir?

Kategori, WordPress’in category taksonomisine ait bir terimdir. Kategori ID’si, bu terimin ilgili sitenin veritabanındaki sayısal term_id değeridir. Ad, kısa isim ve ID farklı özelliklerdir:

Özellik Örnek Anlamı
Ad Rehberler Kullanıcının gördüğü etiket
Kısa isim (slug) rehberler URL’de kullanılan tanımlayıcı
Kategori ID’si 42 Sayısal terim kimliği
Taksonomi category Terimin türü
Üst kategori 0 veya başka bir ID Sıfır, üst kategori bulunmadığını gösterir

term_taxonomy_id, terimin taksonomi kaydına ait ayrı bir kimliktir. Bir eklenti kategori ID’si istiyorsa genellikle term_id bekler; yine de belgelerini kontrol edin. Yazı ID’sini, menü öğesi ID’sini veya kategorideki yazı sayısını kullanmayın.

Kaynak: WordPress WP_Term özellikleri.

1. Yönetim panelinden kategori ID’sini bulma

  1. WordPress yönetim paneline giriş yapın.
  2. Yazılar → Kategoriler bölümüne gidin.
  3. Liste uzunsa arama kutusundan kategoriyi bulun.
  4. Kategorinin adına veya altındaki Düzenle bağlantısına tıklayın.
  5. Adres çubuğundaki tag_ID parametresini bulun ve yalnızca sayısal değerini kopyalayın.
https://example.com/wp-admin/term.php?taxonomy=category&tag_ID=42&post_type=post

Bu örnekte kullanacağınız değer 42. Parametrenin adı kategorilerde de tag_ID olarak görünür; taxonomy=category kısmı bunun yazı kategorisi olduğunu doğrular. ID’yi görmek için kategoriyi silmeniz veya ayarlarını değiştirmeniz gerekmez.

Düzenleme ekranını açmadan öğrenebilir miyim?

Masaüstünde kategori adının veya Düzenle bağlantısının üzerine gelin. Tarayıcının bağlantı önizlemesinde hedef URL görünebilir. Alternatif olarak Düzenle bağlantısına sağ tıklayın, bağlantı adresini kopyalayın ve tag_ID değerini okuyun. Telefonda düzenleme sayfasını açmak genellikle daha kolaydır.

Kategoriler menüsü görünmüyorsa hesabınızın kategori yönetme yetkisi olmayabilir veya bir eklenti menüyü değiştirmiş olabilir. Site yöneticisinden erişimi kontrol etmesini isteyin. Normal yazı yayımlarken kategoriyi adıyla seçebildiğiniz için ID’yi bilmeniz çoğu zaman gerekmez. Girişte sorun yaşıyorsanız WordPress yönetim paneline giriş rehberini inceleyebilirsiniz.

Kaynak: WordPress Kategoriler ekranı.

2. REST API ile kategori ID’sini öğrenme

Site herkese açık kategori verilerine izin veriyorsa aşağıdaki adresi tarayıcıda açabilirsiniz. Alan adını ve tutorials kısa ismini kendi sitenize göre değiştirin:

https://example.com/wp-json/wp/v2/categories?slug=tutorials&_fields=id,name,slug,parent

Örnek bir yanıt şöyledir:

[{"id":42,"name":"Tutorials","slug":"tutorials","parent":0}]

id alanı kategori ID’sidir. Daha geniş bir liste için şu isteği kullanabilirsiniz:

https://example.com/wp-json/wp/v2/categories?per_page=100&page=1&hide_empty=false&_fields=id,name,slug,parent,count

Boş dizi, kısa ismin bulunamadığını veya bir filtrenin sonuçları sınırlandırdığını gösterebilir. Giriş isteği, 401 ya da 403 yanıtı sitenin erişim politikasıyla ilgili olabilir. Her sitenin anonim REST erişimine izin verdiğini varsaymayın.

Kaynak: WordPress Categories REST API.

Çok sayıda kategori ve alternatif REST adresi

WordPress çekirdek koleksiyon isteklerinde bir sayfada en fazla 100 kayıt alınabilir. Daha büyük listelerde page değerini artırın; yanıt başlıklarındaki X-WP-TotalPages alanıyla toplam sayfayı kontrol edin. Tek istek tüm kategorileri getirmiş olmayabilir.

Güzel bağlantılı REST yolu çalışmıyorsa eşdeğer adresi deneyin. Bu da çalışmazsa yönetim panelinden ilerleyin ve yönlendirme sorununu ayrıca inceleyin:

https://example.com/?rest_route=/wp/v2/categories&slug=tutorials&_fields=id,name,slug,parent

Kaynak: REST API sayfalama.

3. WP-CLI ile kategori ID’lerini listeleme

Yetkili terminal erişiminiz varsa ve WP-CLI kuruluysa WordPress’in kurulu olduğu dizinde şu salt okunur komutları çalıştırabilirsiniz:

wp term list category --hide_empty=0 --fields=term_id,name,slug,parent,count
wp term get category tutorials --by=slug --field=term_id

İlk komut boş kategoriler dâhil ad, kısa isim ve ID listesini verir. İkincisi yalnızca kısa ismi tutorials olan kategorinin ID’sini döndürür. Örnekteki kısa ismi kendi kategorinize göre değiştirin.

Kaynak: wp term list.

Kaynak: wp term get.

Multisite kullanıyorsanız komuta --url=https://example.com/alt-site/ ekleyerek ilgili siteyi hedefleyin. Farklı kurulum dizini için --path=/wordpress/dizini kullanılabilir. Aynı sayı başka bir sitede farklı bir terime karşılık gelebileceğinden siteyi doğrulayın.

4. PHP ile kategori ID’sini bulma

Bu örnekler WordPress’in yüklendiği bir çalışma ortamı gerektirir. Uygun tema şablonunda, özel eklentide veya kontrollü geliştirme ortamında kullanılmalıdır; yazı editörüne PHP yapıştırmak kodu çalıştırmaz. Kod değişikliklerini test sitesinde deneyin ve önce site yedeği alın.

Kısa isimden ID bulma

$category = get_category_by_slug( 'tutorials' );

if ( $category instanceof WP_Term ) {
    echo esc_html( (string) $category->term_id );
}

term_id özelliğini okumadan önce dönen nesneyi kontrol edin; aranan kategori bulunamayabilir. Örnekte tutorials bir kısa isimdir, görünen kategori adı değildir.

Kaynak: get_category_by_slug().

Kategori adından ID bulma

$category_id = get_cat_ID( 'Tutorials' );

if ( $category_id > 0 ) {
    echo esc_html( (string) $category_id );
}

get_cat_ID() kategori adını alır; kategori yoksa 0 döndürür. Bu yüzden değeri bir filtrede kullanmadan önce sıfırdan büyük olduğunu kontrol edin.

Kaynak: get_cat_ID().

Bir yazıya atanmış bütün kategorileri bulma

$categories = get_the_category( get_the_ID() );

foreach ( $categories as $category ) {
    printf(
        '<p>%s: %d</p>',
        esc_html( $category->name ),
        (int) $category->term_id
    );
}

Örneği yazı döngüsü içinde kullanın veya get_the_ID() yerine bildiğiniz yazı ID’sini geçin. Yazının birden fazla kategorisi olabilir. Dizide ilk sırada gelen kategori, kendiliğinden “birincil kategori” sayılmaz.

Kaynak: get_the_category().

Açık kategori arşivinin ID’sini öğrenme

if ( is_category() ) {
    $category_id = get_queried_object_id();
    echo esc_html( (string) $category_id );
}

is_category() koşulunu koruyun. Tekil yazı sayfasında veya başka tür bir arşivde sorgulanan nesne farklıdır.

Kaynak: get_queried_object_id().

Boş kategoriler dâhil tüm kategorileri listeleme

$categories = get_categories( array(
    'hide_empty' => false,
) );

foreach ( $categories as $category ) {
    printf(
        '<p>%s (%s): %d</p>',
        esc_html( $category->name ),
        esc_html( $category->slug ),
        (int) $category->term_id
    );
}

hide_empty değerinin false olması, yayımlanmış yazısı olmayan kategorilerin de listelenmesini sağlar. ID’leri öğrendikten sonra geçici tanılama çıktısını kaldırın.

Kaynak: get_categories().

5. Veritabanından kategori ID’sini kontrol etme

Çoğu kullanıcı için yönetim paneli yeterlidir. Yetkili veritabanı erişiminiz varsa aşağıdaki yalnızca SELECT kullanan sorguyla kategori kayıtlarını görebilirsiniz. Taksonomi koşulu, etiketlerin ve ürün kategorilerinin sonuçlara karışmasını önler:

SELECT t.term_id, t.name, t.slug,
       tt.taxonomy, tt.term_taxonomy_id, tt.parent
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt
    ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'category'
ORDER BY t.name;

wp_ yerine kurulumunuzun gerçek tablo önekini kullanın. Multisite’ta siteye özgü tabloları kontrol edin. Kategori kimliği term_id alanıdır. Sayısal ID’leri doğrudan değiştirmeyin; ilişkiler ve başka kayıtlar bunlara bağlı olabilir.

Kaynak: WordPress veritabanı tabloları.

WooCommerce ürün kategorileri ve özel taksonomiler

Yazı kategorileri category, WooCommerce ürün kategorileri product_cat taksonomisindedir. Ürünler → Kategoriler bölümünden ürün kategorisini düzenleyin. URL’de taxonomy=product_cat bulunduğunu doğrulayıp tag_ID sayısını okuyun.

PHP ile ararken taksonomiyi açıkça belirtin:

$term = get_term_by( 'slug', 'clothing', 'product_cat' );

if ( $term instanceof WP_Term ) {
    echo esc_html( (string) $term->term_id );
}

Kaynak: get_term_by().

WooCommerce’in Store API uç noktası da etkin olduğu sitelerde herkese açık ürün kategorilerini listeleyebilir:

https://example.com/wp-json/wc/store/v1/products/categories?hide_empty=false&per_page=100

Nesnelerdeki id alanını okuyun. Bu uç nokta, kimlik doğrulaması isteyen /wc/v3/ yönetim API’sinden farklıdır. Yönetim API anahtarlarını herkese açık sayfalara eklemeyin ve bir ID öğrenmek için paylaşmayın.

Kaynak: WooCommerce ürün kategorileri Store API.

Özel taksonomilerde product_cat yerine kayıtlı taksonomi adını kullanın. Terimleri listelemek için get_terms() kullanılabilir; taksonomi geçersizse WP_Error dönebilir.

Kaynak: get_terms().

Kategori ID’si nerede ve nasıl kullanılır?

Eklenti filtreleri, bileşenler ve kısa kodlar

İlgili alanın ne beklediğini kontrol edin. Bir eklenti 42, diğeri virgülle ayrılmış ID listesi, bir başkası kısa isim veya açılır menü seçimi isteyebilir. WordPress’in bütün eklentilerde geçerli ortak bir kategori kısa kodu ya da category parametresi yoktur. Eklentinin belgelerindeki söz dizimini izleyin.

WP_Query ile bir kategorinin yazılarını gösterme

$query = new WP_Query( array(
    'post_type'           => 'post',
    'post_status'         => 'publish',
    'posts_per_page'      => 5,
    'category__in'        => array( 42 ),
    'ignore_sticky_posts' => true,
) );

while ( $query->have_posts() ) {
    $query->the_post();
    printf(
        '<p><a href="%s">%s</a></p>',
        esc_url( get_permalink() ),
        esc_html( get_the_title() )
    );
}
wp_reset_postdata();

category__in, seçilen kategorileri eşleştirir; alt kategorileri kendiliğinden kapsamaz. Kategoriyle birlikte alt kategorilerinin de kapsanmasını istiyorsanız cat davranışını değerlendirin. Birden fazla ID’de category__in bunlardan herhangi birine, category__and hepsine atanmış yazıları seçer; category__not_in belirtilen kategorileri dışlar. Özel döngüden sonra yazı verisini wp_reset_postdata() ile geri yükleyin.

Kaynak: WP_Query kategori parametreleri.

ID’den kategori bağlantısı üretme

$url = get_category_link( 42 );

if ( $url !== '' ) {
    echo '<a href="' . esc_url( $url ) . '">Tutorials</a>';
}

Bağlantı metnini ihtiyacınıza göre değiştirebilirsiniz. Arşiv adresinin her zaman /category/tutorials/ olacağını varsaymak yerine URL’yi WordPress’e ürettirin. Kalıcı bağlantı ayarları ve kategori hiyerarşisi adresi etkileyebilir.

Kaynak: get_category_link().

REST API’de yazıları kategoriye göre filtreleme

https://example.com/wp-json/wp/v2/posts?categories=42&_fields=id,title,link

categories parametresi kategori ID’sini alır. Kategoriyi dışlamak için categories_exclude=42 kullanılır. Anonim isteklerde taslak yazılar, doğru ID kullanılsa bile görünmez; sonuçlar isteği yapan kişinin erişebildiği içerikle sınırlıdır.

Kaynak: WordPress Posts REST API.

ID doğru ama çalışmıyor: kontrol edilecek noktalar

Belirti Kontrol
Hiç yazı görünmüyor Kategoride yayımlanmış yazı var mı? Sorgulanan içerik türü doğru mu? Dil veya görünürlük filtresi sonucu daraltıyor mu?
Alt kategori yazıları görünmüyor Seçilen sorgunun alt kategorileri kapsayıp kapsamadığını kontrol edin; üst ve alt kategorinin ID’leri farklıdır.
Yanlış kategori geliyor Alan adını, Multisite alt sitesini ve taksonomiyi doğrulayın. Test sitesindeki ID canlı sitede farklı olabilir.
Kısa isimle arama boş dönüyor Görünen adı değil, kaydedilmiş kısa ismi kullanın. Çevirideki kısa isim farklı olabilir.
Kategori listede yok Sayfalamayı, arama filtrelerini ve boş kategorilerin gizlenmesini inceleyin.
Ayar değişikliği görünmüyor Ayarın kaydedildiğini doğruladıktan sonra ilgili sayfa, nesne veya CDN önbelleğini kontrol edin.

Bağımsız doğrulama için /wp-json/wp/v2/categories/42 isteğini veya wp term get category 42 komutunu kullanıp dönen ad ve kısa ismi karşılaştırın. Kimlik doğruysa rastgele başka sayı denemek yerine onu kullanan eklentiyi veya sorguyu inceleyin.

Sık sorulan sorular

Kategori ID’sini görmek için eklenti gerekli mi?

Hayır. Düzenleme URL’si yeterlidir. Sürekli kategori yönetenler için ID sütunu ekleyen bir eklenti pratik olabilir; kurmadan önce bakım durumunu ve uyumluluğunu kontrol edin.

tag_ID kategori kimliği mi, etiket kimliği mi?

Parametre adı ortaktır. Yanındaki taksonomiyi kontrol edin: category yazı kategorisi, post_tag etiket, product_cat ise WooCommerce ürün kategorisidir.

Yönetici hesabı olmadan ID bulunabilir mi?

Site herkese açık REST verilerini sunuyorsa bulunabilir. Erişim kısıtlıysa yetkili erişim edinin veya yöneticiden isteyin.

Kategorinin adını değiştirince ID değişir mi?

Mevcut terimin adını veya kısa ismini düzenlemek normalde ID’yi korur. Kategoriyi silip yeniden oluşturmak yeni kayıt oluşturur; ID’yi tekrar kontrol edin.

Site taşıma işleminden sonra aynı ID kullanılabilir mi?

Tam veritabanı kopyası çoğunlukla kimlikleri korur. Başka bir mevcut siteye içe aktarma yapılırsa kimlikler yeniden eşlenebilir. Sabit ID’li filtreleri hedef sitede doğrulayın; site taşıma kontrol listesine bakabilirsiniz.

Üst kategori ile alt kategori aynı ID’yi mi kullanır?

Hayır. Her kategorinin kendi terim kimliği vardır. Alt kategorinin parent alanı üst kategorinin ID’sini taşır; 0 en üst düzeyi belirtir.

Kategori ID’sini değiştirmek SEO’ya yarar sağlar mı?

Bu sayı dahili bir tanımlayıcıdır. Kategori düzeni, faydalı arşivler ve kararlı bağlantılar üzerinde çalışın; bu amaçla ID değiştirmeniz gerekmez.

Yazı kategorisinin ID’si ürün filtresinde kullanılabilir mi?

Özelliğin beklediği taksonomideki terimi kullanın. Standart ürün kategorileri product_cat, yazı kategorileri category taksonomisine aittir.

ID’yi kullanmadan önce son kontrol

  1. Alan adını veya Multisite alt sitesini doğrulayın.
  2. Kategori adını, kısa ismini ve taksonomisini eşleştirin.
  3. URL’nin tamamı yerine yalnızca sayısal kimliği kopyalayın.
  4. Kullanacağınız alanın ID, kısa isim veya liste beklediğini kontrol edin.
  5. Bilinen bir yayımlanmış yazı veya ürünle sonucu doğrulayın.
Bir adım daha ilerlediniz.Diğer rehberler