Belki WordPress gönderilerinize özel bir alan eklediniz ve yalnızca bu alana sahip gönderileri göstermek istiyorsunuz. Ya da belirli bir özel alan değerine sahip gönderileri listeleyen özel bir sayfa oluşturmaya çalışıyorsunuz. Yalnız değilsiniz!
Okurlarımızdan biri bunun nasıl yapılacağını sordu ve biz de cevabı herkesle paylaşmanın faydalı olacağını düşündük.
Özel alanlar, yazılarınıza ve sayfalarınıza ekstra bilgi eklemenizi sağlar. İçeriğinizi düzenlemek ve filtrelemek için harikadırlar. Bu makalede, WordPress gönderilerini yalnızca belirli bir özel alana sahiplerse nasıl görüntüleyeceğinizi göstereceğiz.
Not: Bu eğitim, belirli bir özel alana girilmiş bir değer varsa WordPress gönderilerini görüntülemek içindir. Özel alanları bir WordPress yazısının ön ucunda görüntülemek istiyorsanız, WordPress temalarında özel alanların nasıl görüntüleneceğine ilişkin kılavuzumuzu okuyabilirsiniz.
Neden WordPress Yazılarını Belirli Bir Özel Alanla Görüntüleyelim?
WordPress web sitenizde bir yazı oluşturduğunuzda, yazıya ek meta veriler eklemek için özel alanları kullanabilirsiniz. Meta veriler yazı hakkında başlık, yazar ve yayınlanma tarihi gibi bilgilerdir.
Özel alanlar gelişmiş bir WordPress konseptidir ve WordPress’te özel alan eklemenin birçok yolu vardır. WordPress Özel Alanlar 101: İpuçları, Püf Noktaları ve Hack’ler başlıklı yazımızda özel alanların nasıl kullanılacağı ve görüntüleneceği hakkında birçok yararlı ipucu bulacaksınız.
Kullanıcılarımızdan biri, WordPress gönderilerinin yalnızca belirli bir özel alan mevcutsa nasıl görüntüleneceğini sordu. Bu, belirli bir özel alan ve/veya değer içeren tüm gönderileri listeleyen özel bir sayfa oluşturmak istiyorsanız yararlı olabilir.
Cevapla geri döndükten sonra, daha büyük WordPress.org topluluğunun da bundan yararlanabilmesi için bunu herkesle paylaşmanın en iyisi olacağını düşündük.
WordPress Tema Dosyalarınızı Düzenleme: Akılda Tutulması Gerekenler
Bu öğreticiyi düzgün bir şekilde takip edebilmek için aklınızda bulundurmanız gereken bazı şeyler var:
- Bu eğitim WordPress tema dosyalarınızı kodla düzenlemeyi içerdiğinden yeni başlayanlar için pek uygun değildir. Bu konuda yeniyseniz, WordPress’te kod kopyalama ve yapıştırma hakkındaki kılavuzumuzu okumanız gerekecektir.
- Bir hata oluştuğunda canlı sitenizin etkilenmemesi için web sitenizi yedeklemenizi ve/veya bir hazırlama ortamı kullanmanızı öneririz. Bunun nedeni, tema dosyalarınıza riskli olabilecek kodlar ekleyecek olmanızdır.
- Daha sonra kodu nereye ekleyeceğinizi bilmeniz için WordPress şablon hiyerarşisinin nasıl çalıştığını anlamanızı öneririz.
- WordPress döngülerinin nasıl çalıştığını da öğrenmeniz gerekecek çünkü bu parametreleri bir WordPress sorgusunda çağıracağız.
Ayrıca, blok temaların farklı bir tema dosyası seti olduğundan, bu eğitimin yalnızca klasik WordPress temalarıyla çalıştığını unutmayın.
Bununla birlikte, bir WordPress gönderisinin yalnızca belirli bir özel alana sahip olması durumunda nasıl görüntüleneceğine bir göz atalım.
Bir WordPress Gönderisini Yalnızca Belirli Bir Özel Alana Sahipse Görüntüleme
Size 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 Twenty Twenty-One temasının index.php dosyasına eklemek istiyorsunuz. İşte o dosyanın WordPress döngüsü kısmı şu anda bö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, yazıları 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 herhangi bir özel filtreleme veya sıralama olmadan yazıları 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 gerekecektir:
<?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 alan değerine (bu durumda, ‘renk'
özel alanına sahip gönderiler) dayalı olarak gönderileri getirmek için özel bir sorgu ($the_query = new WP_Query('meta_key=color');
) ekledik.
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 parçacıkla aynı şekilde görüntüler.
WordPress’in özel sorgudan sonra tüm gönderileri doğru şekilde görüntülemeye geri dönmesini sağlamak içinwp_reset_postdata()
işlevini de ekledik. Bu, sitenin sorunsuz çalışmasını ve kullanıcılara doğru içeriği göstermesini sağlar.
Şimdi, belirli bir değere sahip özel bir alana sahip belirli gönderileri göstermek istiyorsanız, 3. satırdaki sorguyu şu şekilde değiştirmeniz yeterlidir:
$the_query = new WP_Query( 'meta_value=blue' );
Bu, herhangi bir özel alanda ‘mavi’ değeri olan tüm gönderileri görüntüler.
‘color’ alanının ‘blue’ değerine sahip olduğundan emin olmak istiyorsanız, sorgu kodunuz aşağıdaki gibi görünecektir:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
WordPress WP_Query kod referans sayfasında sorgunuzda kullanabileceğiniz ek parametreler hakkında bilgi edinebilirsiniz.
Kodu sayfa şablonu PHP dosyasına kaydettikten sonra, kodunuzu çalışırken görmek için WordPress sitenizi ön uçtan kontrol edebilirsiniz.
WordPress Sitenizi Özelleştirmenin Daha Fazla Yolunu Öğrenin
İşte WordPress sayfalarınızı özelleştirebileceğiniz daha fazla yol:
- WordPress’te Kategorileri Farklı Şekillendirme
- WordPress’te Özel Kaydırma Çubuğu Ekleme
- WordPress Widget’larına Özel Stiller Ekleme
- Her WordPress Gönderisine Farklı Stil Verme
- WordPress Temalarınızda Kısa Kodlar Nasıl Kullanılır?
- WordPress’te Geri Dönen Ziyaretçiler için Yeni Yazılar Nasıl Vurgulanır?
- WordPress’te Kenar Çubuğu Tarafı Nasıl Değiştirilir
Umarız bu eğitim, bir WordPress gönderisini yalnızca belirli bir özel alana sahipse nasıl görüntüleyeceğinizi öğrenmenize yardımcı olmuştur. Ayrıca bir WordPress web sitesinin nasıl düzenleneceğine ilişkin eksiksiz kılavuzumuzu ve WordPress için en iyi Figma eklentileri uzman seçimlerimizi görmek isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
ahmed
i have a question sir if i want to display single post and custom fields then what i should do.
i dont want to display the post with specific custom fields. i want to display all custom fields of post
Dave101
Hi, thank for the useful tutorial. I have a question, in a wordpress website i set a meta value named “meta_country” and then i set every post with the country of the article, like “us”, “uk”, “fr”… Now I’m trying to add somewhere in the home of the blog a link that show list of all post with a specific country and a specific tag. For example all “UK” post tagged “APPLE”.
I don’t understand how to do that, someone could help me?
Максим Каминский
great thanks, it help wery well!
pjhooker
Thx!
Eduard Unruh
omg finally THANKS!
Mario M
I wasnt able to generate any results unless I included “post_type” parameter into the query.
ie: $the_query = new WP_Query(‘post_type=page&meta_key=color’);
sacha
Wonderful, just so simple and clean.
Thank you.
scottlee.me
@ad Great question! I’m curious too.
ad
Hi,
How could I show posts that DON’T have a specific Custom Field? Any idea?
Thanks!!!
tara tin
as I know from php it must be meta_key!=’your key’
;just you need to know that “!” means “not”
brunobruno2
Beatiful! Many thanks for sharing it. Works like a charm.