En Zor WordPress Sorusu…

Arkadaşlar WordPress ile ilgili zor bir soru var. Şuana kadar sorduğum üstatlar mümkün değil dedi. Buraya yazıyorum belki bir bilen çıkar.
Şimdi WordPress sitede her kategoriyi editleyip, özel bir alan eklenip ayrı sabit yazılar yazılabilinir mi?
Örneğin sizler kategoriyi tıkladığınızda girdiğiniz sayfada o kategoriye ait makaleler olur değil mi? Burada hedef kategoriye tıklayıp girdiğiniz sayfada hem makaleler hem de ön yüzde ayrı olarak sabit bir yazı olsun istiyorum. Tabi her kategoride ayrı sabit yazı olacak?
Açıklaması biraz karışık. Umarım anlaşılmıştır 🙂
Berkay Bey’den güzel bir fonksiyon cevabı gelmiştir.
tuttur veya tutturma için custom field id değeri : metatut
eğer tuttur seçili ise value : 0 olsun
eğer tutturma seçili ise value : 1 olsun
olarak farzedelim.
Bunun için ekstra bir eklentiye gerek yoktur. metatut adında bir custom field (özel alan) oluşturulur. Category.php dosyasında yer alan döngüde metakey olarak metatut belirlenir ve ilk döngüde value değeri 0 olanlar ikinci döngüde ise 1 olanlar listelenir.
Doğal olarak tutturulan yazıların döngüsü ilk olduğu için ilk onlar listelenecektir.
Hem ilk döngüde hem de ikinci döngüde yer alan yazıların birbiriyle karışmaması için boş bir array oluşturulur.
İlk döngü içerisinde array_push ile bu yazı id’leri bu array’a aktarılır ve ikinci döngüde query_post filtresi oluşturularak “post__not_in” özelliği ile döngü içerisinden bu yazıların id numaraları kullanılarak bu yazıların listelenmesine engel olunur.
Mutlu WordPress’ler 🙂
Bu işlem ekstra bir eklenti yazılımıyla mümkün olabilir. Fonksiyon dosyası üzerinden kategoriler için özel alan belirlenerek sabitlenecek yazılar için özel bir PHP kodu eklenip çağrılarak yapılabilir.
Kategori içeriği mantığında da fonksiyon dosyasında kategorilerin ID’lerine göre içerik çekimi, kategori açıklamalarında da kategoriler için belirlenecek bir özel alan oluşturulursa sabit olarak o içerik ilk yazı görünümünde kalacaktır.
İmkansız diye bir şey WordPress sisteminde yoktur, sadece gerçekleştirilmesi için çaba yeterlidir.