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
Universal Analytics’ten Google Analytics 4’e geçişle beraber bazı çözülmesi gereken sorunlarınız olabilir. Bu sorunlardan biri de ‘unassigned’ trafik. Raporlarda “unassigned” / (not set) olarak görünen boyutlar, analiz ve optimize etme olanağınızı olumsuz etkileyen bir faktör olarak karşımıza çıkıyor. GA4 raporlarınızdaki “unassigned” trafiğin nedenlerini ve nasıl azaltalabileceği gibi konulara değineceğiz. Bu sayede web sitenizin ziyaretçi trafik […]
Devamını Oku
Beginner Level Web/App AnalitiğiGoogle Cloud’un BigQuery veri ambarı Facebook Reklamlarından otomatik veri aktarımını desteklediğini bu yılın başında açıklamıştı. Önizleme aşamasında olan bu özellik, veri yükleme işlerinin planlanmasına olanak tanıyarak analiz ve içgörüler geliştirmek için alternatif bir yol sunuyor. Bu entegrasyon sayesinde üçüncü taraf araçlara veya manuel kod çalışmasına olan ihtiyacınız ortadan kalkıyor. Bu entegrasyon özel raporların desteklenmediği sabit […]
Devamını Oku
Mid Level Web/App AnalitiğiGoogle Analytics 4’ün app ve web verilerini birleştiriyor olmasıyla uygulama analizleri daha kolay takip edilebilir hâle geldi. Firebase Analytics, iOS veya Android uygulamanızın takibini GA4 ile kolaylıkla yapabilmenize olanak tanıyor. Mobil uygulama takibi için birçok farklı tool olmasıyla beraber aynı mülk içinde hem web hem de app verilerini görebiliyor olmak daha doğru analizler ve stratejiler […]
Devamını Oku
Mid Level Web/App Analitiğiİşletmeler, analitik ve pazarlama çerezlerinden mümkün olduğunca fazla veri kullanmak ister. Ancak bu verileri toplayabilmesi ve kullanabilmesi için KVKK/GDPR gibi kanunlara uyum sağlaması gerekir. Google, Consent Mode’nu kullanıma açarak çerezlerin onay düzeyine göre kullanılabilmesine yardımcı olur. Yani Consent Mode ile kullanıcıların gizlilik tercihleri dikkate alınarak ilgili platformlara aktarılması sağlanır. Çerez türlerini kısaca açıklamak gerekirse: Zorunlu […]
Devamını Oku
Mid Level Web/App Analitiği