23.09.2022
WordPress üzerinde çalışacak custom bir proje geliştiriyorsanız, WordPress’in yapısındaki thumbnail, ürün, kategori gibi bileşenlerin PHP ile nasıl derlendiğini bilmek elzem bir konu olabiliyor.
Ben de bu yazıda, PHP’de nasıl sayfada birden fazla kategori gösterebileceğimizi basit yollardan biriyle göstermek istiyorum.
WordPress normalde blog mantığında çalışan bir yapıya sahip. Default olarak tüm blog’lar ana bir kategori altında toplanıyor. Tek bir kategori altında sayısız ürününüz olsa da bu çok bir sorun yaratmıyor. Asıl zorluk, birden fazla kategorilerin olduğu senaryoda başlıyor.
Benim vereceğim örnekte tüm yazılar 3 kategoriye (category-1, category-2, category-3) ayrılıyor. Ben de her birini tek bir sayfada göstermek için birer array oluşturuyorum.
'orderby' => 'date' ,
'order' => 'DESC' ,
'posts_per_page' => 3,
'paged' => get_query_var('paged'),
'post_parent' => $parent
); ?>
Bu array’de post’ların tarihe göre dizilmesi, 3’den fazla posta yer vermemesi gibi argument’lar oluşturulabiliyor.
Asıl konumuz olan, sayfaya kategori çağırmak istediğimiz durumlarda, yeni bir ‘category_name’ argument’ı kullanmak yetiyor.
'category_name' => 'category-1',
Daha önce panelden kategoriyi oluştururken bu ismi kullandığımız için, PHP bu argument’ı tanımlamakta herhangi bir sorun yaşamayacaktır. Bu şekilde isimlerini argument’da pesifik olarak tanımladığınız kategoriye ait içerikler sayfaya düşecektir.
<?php $args = array(
'post_type' => 'post' ,
'orderby' => 'date' ,
'order' => 'DESC' ,
'posts_per_page' => 3,
'category_name' => 'category-1',
'paged' => get_query_var('paged'),
'post_parent' => $parent
); ?>
<?php query_posts($args); ?>
Birden fazla kez array kullanarak başka kategorileri de çağırabilirim. Bunun için yeni bir array oluşturmam ve o array’deki argument dizisinde çağıracağım kategorinin ismini vermem yetiyor.
Aşağıdaki örnekte her 3 kategori için oluşturduğum array’ler görünüyor. Daha sonra her birinde have_post() function’ı kullanarak postların geleceği alanı belirletebilirsiniz. Daha sonra bunlara HTML üzerinden gözükmesini istediğiniz şekilde tanımlamalar yapabilirsiniz.
<!-- category-1'i çağırıyor -->
<?php $args = array(
'post_type' => 'post' ,
'orderby' => 'date' ,
'order' => 'DESC' ,
'posts_per_page' => 3,
'category_name' => 'category-1',
'paged' => get_query_var('paged'),
'post_parent' => $parent
); ?>
<?php query_posts($args); ?>
<!-- category-1'in postlarını çağırıyor -->
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="category-1">
---
</div>
<?php endwhile; ?>
<?php endif; ?>
<!-- category-2'yi çağırıyor -->
<?php $args = array(
'post_type' => 'post' ,
'orderby' => 'date' ,
'order' => 'DESC' ,
'posts_per_page' => 3,
'category_name' => 'category-2',
'paged' => get_query_var('paged'),
'post_parent' => $parent
); ?>
<?php query_posts($args); ?>
<!-- category-2 postlarını çağırıyor -->
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="category-2">
---
</div>
<?php endwhile; ?>
<?php endif; ?>
<!-- category-3'ü çağırıyor -->
<?php $args = array(
'post_type' => 'post' ,
'orderby' => 'date' ,
'order' => 'DESC' ,
'posts_per_page' => 3,
'category_name' => 'category-3',
'paged' => get_query_var('paged'),
'post_parent' => $parent
); ?>
<?php query_posts($args); ?>
<!-- category-3 postlarını çağırıyor -->
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="category-3">
---
</div>
<?php endwhile; ?>
<?php endif; ?>
Aslında bu şekilde kategori çağırmak için category id gibi seçiciler kullanmak veya for each gibi yollarla hepsini çağırabilirsiniz. Category_name kullanımı bunlar arasında en anlaşılabilir ve kullanımı en kolay olanı.
Perfist Blog
Benzer Yazılar
Web sitenizi ziyaret edenlerin hangi kanallar aracılığıyla size ulaştığını, pazarlama stratejilerinizin başarısını ölçmek için önemlidir. Google Analytics 4 (GA4), trafik kaynaklarını analiz etmek için kanal gruplaması (Channel Grouping) özelliğini sunar. Kanal gruplaması sayesinde ziyaretçi trafiğinizi belirli kategorilere ayırabilir ve daha doğru pazarlama kararları alabilirsiniz. GA4’te Kanal Gruplaması Nedir? GA4’te kanal gruplaması, Organik Arama, Ücretli Arama, […]
Devamını Oku
Beginner Level Web/App AnalitiğiE-Ticaret SEO Nedir? E-Ticaret SEO, online mağazaların arama motorlarında üst sıralarda yer almasını sağlamak için yapılan optimizasyon çalışmalarını kapsar. Ürün sayfalarının, kategori sayfalarının ve blog içeriklerinin arama motoru algoritmalarına uygun hale getirilmesiyle organik trafik artırılır. Doğru yapılandırılmış bir SEO stratejisi, kullanıcıların ilgili ürünlere daha hızlı ulaşmasını ve satışların artmasını destekler. E-Ticaret SEO, dijital pazarlamanın en […]
Devamını Oku
Mid Level SEODijital pazarlamada yapay zekanın etkisinin hızla arttığı bir dönemdeyiz. Özellikle Google Ads, yapay zekâ (AI) entegrasyonları sayesinde reklam stratejilerinde önemli değişimlere öncülük ediyor. Reklamcılar arasında “anahtar kelimesiz search optimizasyonu” olarak nitelendirilen AI Max Search Ads, içinde olduğumuz mayıs ayının başında Google tarafından duyuruldu ve geçtiğimiz günlerde yapılan Google Marketing Live 2025 etkinliğinde ayrıntılı olarak tanıtıldı. […]
Devamını Oku
Senior Level Performans PazarlamasıArama Niyeti (Search Intent) Nedir? Arama niyeti (Search Intent), kullanıcıların bir sorguyu gerçekleştirirken ulaşmak istediği asıl amacı ifade eder. Google ve diğer arama motorları, yalnızca kelimeleri değil, bu kelimelerin bağlamını ve kullanıcının ne aradığını anlamaya odaklanır. Arama niyeti, bilgilendirici, gezinsel, ticari araştırma ve işlemsel olmak üzere dört ana kategoriye ayrılır. Kullanıcılar bazen bilgi edinmek, bazen […]
Devamını Oku
Mid Level SEO