Özel alanlara göre belirli WordPress gönderilerini göstermeniz gerektiğinde ne olacağını biliyorsunuz? Biz de oradaydık.
WordPress ile ilk başladığımızda, özellikle belirli bilgileri içeren gönderileri görüntülemek istediğimizde, herhangi bir kod parçacığı görmek göz korkutucu geliyordu.
Ancak iyi haber şu: binlerce WordPress kullanıcısına yardımcı olduktan sonra, özel alan filtreleme gibi teknik görünen bir şeyin bile korkutucu olmak zorunda olmadığını gördük.
Aslında, bunu yapmak için basit bir kod yöntemiyle size yol göstereceğiz.
Bu çözüm, ister belirli kriterlere dayalı olarak normal blog gönderileri ister özel gönderi türleri yayınlıyor olun, mükemmel çalışır.

📌 Hızlı Not: Bu eğitim, belirli bir özel alana bir değer girilmişse WordPress gönderilerini görüntülemek içindir.
Özel alanları bir WordPress gönderisinin ön yüzünde görüntülemek istiyorsanız, WordPress temalarında özel alanların nasıl görüntüleneceği konusundaki kılavuzumuzu okuyabilirsiniz.
Neden Belirli Bir Özel Alana Sahip WordPress Gönderilerini Görüntülemelisiniz?
WordPress web sitenizde bir gönderi oluşturduğunuzda, gönderiye ek meta veriler eklemek için özel alanları kullanabilirsiniz.
Metadata, bir gönderiye ekleyebileceğiniz ek bilgidir. Örneğin, bir kitap incelemesi yazıyorsanız, ‘Yazar Adı’ veya ‘Yıldız Derecelendirmesi’ için özel alanlar ekleyebilirsiniz.
Özel alanlar gelişmiş bir WordPress kavramıdır ve WordPress'e özel alan eklemenin birçok yolu vardır. Özel alanları kullanma ve görüntüleme konusunda birçok yararlı ipucunu gönderimizde bulabilirsiniz: WordPress Özel Alanları 101: İpuçları, Püf Noktaları ve Hack'ler.

Kullanıcılarımızdan biri, WordPress gönderilerinin yalnızca belirli bir özel alan mevcut olduğunda nasıl görüntüleneceğini sordu. Belirli bir özel alan ve/veya değer içeren tüm gönderileri listeleyen özel bir sayfa oluşturmak istiyorsanız bu kullanışlı olabilir.
Cevapla yanıtladıktan sonra, bunu herkesle paylaşmanın en iyisi olacağını düşündük, böylece daha büyük WordPress.org topluluğu da bundan faydalanabilir.
WordPress Tema Dosyalarınızı Düzenleme: Dikkat Edilmesi Gerekenler
Bu öğreticiyi düzgün bir şekilde takip edebilmek için aklınızda bulundurmanız gereken bazı şeyler şunlardır:
- Bu öğretici, WordPress tema dosyalarınızı kodla düzenlemeyi içerir, bu nedenle yeni başlayanlar için en uygunu değildir. Eğer bu konuda yeniyseniz, WordPress'e web'den kod parçacıkları yapıştırma hakkında yeni başlayanlar rehberi hakkındaki kılavuzumuzu okumanız gerekecektir.
- Bir hata oluştuğunda canlı sitenizin etkilenmemesi için web sitenizi yedeklemenizi ve/veya bir hazırlık ortamı kullanmanızı öneririz. Bunun nedeni, tema dosyalarınıza kod ekleyecek olmanızdır ki bu riskli olabilir.
- Kodu daha sonra nereye ekleyeceğinizi bilmeniz için WordPress şablon hiyerarşisinin nasıl çalıştığını anlamanızı öneririz.
- Ayrıca WordPress döngülerinin nasıl çalıştığına da aşina olmanız gerekecek, çünkü bu parametreleri bir WordPress sorgusunda çağıracağız.
Ayrıca, bu öğreticinin yalnızca klasik WordPress temalarıyla çalıştığını unutmayın, çünkü blok temaların farklı tema dosyaları vardır.
Bunu söyledikten sonra, bir WordPress gönderisini yalnızca belirli bir özel alana sahipse nasıl göstereceğimize bakalım.
Gönderilerinizi Belirli Özel Alanlara Göre Nasıl Filtrelersiniz
Kullanmanız gereken kodu göstermeden önce, hangi tema dosyasına eklemeniz gerektiğini bilmeniz gerekir. Büyük olasılıkla bu, index.php, archive.php veya page.php gibi bir sayfa şablonu olacaktır.
Diyelim ki bunu Yirmi Yirmi Bir temasının index.php dosyasına eklemek istiyorsunuz. Şu anda o dosyanın WordPress döngüsü bölümü şöyle görünüyor:
<?php
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
get_footer();
Bu kod, gönderileri görüntülemek için varsayılan WordPress döngüsünü (have_posts() ve the_post()) kullanır. Bu yöntem çoğu standart WordPress teması için uygundur ve özel filtreleme veya sıralama olmadan gönderileri görüntülemek için kullanılır.
Şimdi, yukarıdaki örnekte olduğu gibi ‘color’ özel alanını kullandığınızı varsayalım. Bu kodun tamamını aşağıdaki kod parçacığı ile değiştirmeniz gerekecek:
<?php
// The Query to show a specific Custom Field
$the_query = new WP_Query('meta_key=color');
// Load posts loop.
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
// Reset Post Data
wp_reset_postdata();
get_footer();
Bu yeni kodda, belirli bir özel alana sahip gönderileri almak için özel bir sorgu tanıttık (bu durumda, 'color' özel alanına sahip herhangi bir gönderi).
Ardından, bu özel sorgu tarafından getirilen gönderiler üzerinde yineleme yapmak için özel bir döngü (if ($the_query->have_posts())) kullanır ve her gönderinin içeriğini ilk kod parçacığıyla aynı şekilde görüntüler.
WordPress'in özel sorgudan sonra tüm gönderileri doğru şekilde görüntülemeye dönmesini sağlamak içinwp_reset_postdata() fonksiyonunu da ekledik. Bu, sitenin sorunsuz çalışmasını ve kullanıcılara doğru içeriği göstermesini sağlar.
Şimdi, 'color' özel alanının 'blue' gibi belirli bir değere sahip olduğu gönderileri bulmak ister misiniz? Bunu yapmak için sorgunuza bir 'meta_value' parametresi eklemeniz yeterlidir.
Güncellenmiş sorgu kodunuz şu şekilde görünecektir:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
💡Profesyonel İpucu: meta_compare parametresiyle filtrelemenizi daha da ileri götürebilirsiniz. Bu, bir değere uymayan gönderileri bulmanızı sağlar.
Örneğin, rengi 'mavi' olmayan tüm gönderileri görüntülemek için sorgunuz şu şekilde olacaktır:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=' ) );
!=, WordPress'e 'color' alanının mevcut olduğu ancak 'blue'ye eşit olmadığı tüm gönderileri bulmasını söyler.
Resmi WordPress geliştirici belgelerinde bulabileceğiniz kullanabileceğiniz birçok başka karşılaştırma operatörü vardır.
PHP sayfa şablon dosyasında kodu kaydettikten sonra, kodunuzun çalışırken etkisini görmek için WordPress sitenizi ön uçta kontrol edebilirsiniz.
Belirli Bir Özel Alanı Varsa Gönderiyi Görüntüleme Hakkında Sıkça Sorulan Sorular
Belirli bir özel alana sahipse bir gönderinin görüntülenmesi hakkında okuyucularımızın sıkça sorduğu bazı sorular şunlardır:
Tema dosyalarını düzenlemeden bunu yapmanın bir yolu var mı?
Evet ve çoğu kullanıcı için önerdiğimiz yöntem budur. WPCode gibi bir eklenti, temanızın dosyalarına doğrudan dokunmadan bu tür özel PHP kod parçacıklarını güvenli bir şekilde eklemenize olanak tanır.
Bu, sitenizi hatalardan korur ve temanızı güncellediğinizde özelleştirmelerinizin kaybolmamasını sağlar.
Gönderileri birden çok özel alana göre filtreleyebilir miyim?
Yapabilirsiniz. WP_Query fonksiyonu çok güçlüdür ve daha karmaşık argümanlar kabul eder. Birden çok özel alanı aynı anda eşleştirmek için bir koşul dizisi oluşturmanıza olanak tanıyan bir ‘meta_query’ parametresi kullanırsınız.
Bu yöntem blok temalarıyla çalışıyor mu?
Bu özel öğretici, index.php veya archive.php gibi dosyaları düzenleyerek klasik temalara odaklanmaktadır. Blok temaları Site Düzenleyici'yi kullanır ve bu dosyalara güvenmez.
Bir blok temasında benzer bir sonuç elde etmek için, özel kod gerektirmeyen yerleşik filtreleme seçeneklerine sahip Sorgu Döngüsü bloğunu kullanırsınız.
'meta_key' ve 'meta_value' arasındaki fark nedir?
'meta_key'i 'Renk' veya 'Durum' gibi etiket adı olarak düşünün. 'meta_value' ise 'Mavi' veya 'Yayınlandı' gibi o alana girilen gerçek veridir.
Anahtar kelimeyi kullanmak, o özel alana sahip herhangi bir gönderiyi bulur; değeri kullanmak ise o belirli bilgiye sahip herhangi bir gönderiyi bulur.
WordPress Sitenizi Özelleştirmenin Daha Fazla Yolunu Öğrenin
WordPress sayfalarınızı özelleştirebileceğiniz daha fazla yol burada:
- WordPress'te Bireysel Kategorileri Farklı Şekilde Nasıl Stilize Edebilirsiniz
- WordPress'te Özel Kaydırma Çubuğu Nasıl Eklenir
- WordPress Widget'larına Özel Stiller Nasıl Eklenir
- Her WordPress Yazısını Farklı Şekilde Biçimlendirme
- WordPress Temalarınızda Kısa Kodlar Nasıl Kullanılır
- WordPress'te Geri Dönen Ziyaretçiler İçin Yeni Gönderileri Nasıl Öne Çıkarırsınız
- WordPress'te Kenar Çubuğu Tarafını Değiştirme
Bu öğreticinin, belirli bir özel alana sahip bir WordPress gönderisini yalnızca nasıl görüntüleyeceğinizi öğrenmenize yardımcı olduğunu umuyoruz. Ayrıca, bir WordPress web sitesini nasıl düzenleyeceğinize dair konusundaki tam rehberimize ve WordPress için en iyi Figma eklentileri hakkındaki uzman seçimlerimize de bakmak isteyebilirsiniz.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

ahmed
Bir sorum var efendim, tek bir gönderiyi ve özel alanları görüntülemek istersem ne yapmalıyım.
Belirli özel alanlara sahip gönderiyi görüntülemek istemiyorum. Gönderinin tüm özel alanlarını görüntülemek istiyorum.
Dave101
Merhaba, faydalı eğitim için teşekkürler. Bir sorum var, bir wordpress web sitesinde "meta_country" adında bir meta değeri ayarladım ve ardından her gönderiyi makalenin ülkesiyle, örneğin "us", "uk", "fr" gibi ayarladım. Şimdi blogun ana sayfasına belirli bir ülkeye ve belirli bir etikete sahip tüm gönderilerin listesini gösteren bir bağlantı eklemeye çalışıyorum. Örneğin, "APPLE" etiketli tüm "UK" gönderileri.
Bunu nasıl yapacağımı anlamadım, bana yardım edebilecek biri var mı?
Максим Каминский
harika teşekkürler, çok iyi yardımcı oldu!
pjhooker
Teşekkürler!
Eduard Unruh
Aman Tanrım sonunda TEŞEKKÜRLER!
Mario M
Sorguya “post_type” parametresini dahil etmediğim sürece hiçbir sonuç üretemedim.
örn: $the_query = new WP_Query(‘post_type=page&meta_key=color’);
sacha
Harika, çok basit ve temiz.
Teşekkür ederim.
scottlee.me
@ad Harika soru! Ben de merak ediyorum.
ad
Merhaba,
Belirli bir Özel Alanı OLMAYAN gönderileri nasıl gösterebilirim? Fikri olan var mı?
Teşekkürler!!!
tara tin
php'den bildiğim kadarıyla meta_key!=’anahtarınız’ olmalı
; bilmeniz gereken tek şey “!” “değil” anlamına gelir
brunobruno2
Harika! Paylaştığınız için çok teşekkürler. Tıpkı sihirli gibi çalışıyor.