En çok ihtiyaç duyduğunuzda güvenilir WordPress eğitimleri.
WordPress Başlangıç Rehberi
WPB Kupası
25 Milyon+
Eklentilerimizi kullanan web siteleri
16+
Yıllık WordPress deneyimi
3000+
Uzmanlardan WordPress eğitimleri

WordPress Gönderisini Yalnızca Belirli Bir Özel Alanı Varsa Görüntüleme

Ö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.

WordPress Gönderisini Yalnızca Belirli Bir Özel Alanı Varsa Görüntüleme

📌 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.

Özel Alanlar Kullanarak Bir Gönderiye Meta Veri Ekleyebilirsiniz

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:

  1. 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.
  2. 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.
  3. Kodu daha sonra nereye ekleyeceğinizi bilmeniz için WordPress şablon hiyerarşisinin nasıl çalıştığını anlamanızı öneririz.
  4. 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:

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.

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıklamanız durumunda komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve bize nasıl destek olabileceğinizi görün. İşte editöryal sürecimiz.

Nihai WordPress Araç Seti

Araç Kitimize ÜCRETSİZ erişim kazanın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Okuyucu Etkileşimleri

11 CommentsLeave a Reply

  1. 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.

  2. 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ı?

  3. 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’);

  4. Merhaba,

    Belirli bir Özel Alanı OLMAYAN gönderileri nasıl gösterebilirim? Fikri olan var mı?

    Teşekkürler!!!

    • php'den bildiğim kadarıyla meta_key!=’anahtarınız’ olmalı

      ; bilmeniz gereken tek şey “!” “değil” anlamına gelir

  5. Harika! Paylaştığınız için çok teşekkürler. Tıpkı sihirli gibi çalışıyor.

Yanıt Bırakın

Yorum bırakmayı seçtiğiniz için teşekkürler. Lütfen tüm yorumların yorum politikamıza göre denetlendiğini ve e-posta adresinizin YAYINLANMAYACAĞINI unutmayın. Lütfen isim alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.