WordPress Özel Gönderi Türleri İçin Nihai Kılavuz
Yayınlanan: 2024-03-26On yıldan fazla bir süre önce, hayatımı ve kariyerimi değiştirecek bir karar vererek yalnızca yayınlama platformum olarak WordPress'i ve eklentilerini oluşturduğum CMS'yi kullanmaya odaklandım. Bunun başlıca nedenleri, parçalar ve öğreticiler içeren sayısız gönderi dahil olmak üzere mükemmel belgeler ve WordPress'i genişletme kolaylığıydı. O zamanki kullanım durumlarım için WordPress'i genişletmenin en belirgin özelliği Özel Yazı Türleriydi.
Esas olarak 2010 yılında WordPress sürüm 3 ile geliştirilen Özel Gönderi Türleri (CPT'ler) birçok şekilde kullanılmaktadır. Eminim ki bilmeden onlarla tanışmışsınızdır. Size CPT'lere genel bir bakış, bunları zaman içinde nasıl kullandığıma dair spesifik örnekler, bunları kendiniz nasıl kuracağınız ve ilgili eklentilerle nasıl daha fazlasını başarabileceğinizi anlatayım.
Özel Gönderi Türleri Nelerdir?
WordPress çekirdeği çeşitli Yazı Türleriyle birlikte gelir. Bunlardan en belirgin olanları Gönderiler, Sayfalar ve Eklerdir.
WordPress 6.4'te dört tane daha var:
- Revizyonlar
- Gezinme menüleri
- Şablonları engelle
- Şablon parçaları
Eğlenceli gerçek: Yorumlar bir Gönderi Türü değildir. Bence WordPress başlangıçta yorumların bu kadar merkezi bir parçası olduğu bir blog platformu olmasaydı, bugünlerde bunları bir yazı türü olarak da ele alırdık.
Bunlardan da anlaşılacağı gibi, Gönderi Türleri her zaman açık değildir ve ön uçta "içerik" olarak tanımladığımız görünür bir şey olmayabilir. Bunlar daha çok veritabanındaki ilgili öğelerden oluşan bir gruptur.
Daha sonra "Özel" Yazı Türleri olarak adlandırılacak olan bu "şeylerden" daha fazlasını ekleyebilirsiniz.
Bu resmi bir WordPress terimi değil, ancak görünür herhangi bir Özel Gönderi Türü için Özel "İçerik" Türleri ifadesini seviyorum. Birkaç örneğe daha sonra gireceğim.
Neden Özel Gönderi Türü Kullanmalı?
WP Mayor zaman içinde, şu anda görebileceğiniz Ömür Boyu Fırsatlar gibi birden fazla Özel Gönderi Türü kullanmıştır.
Kişisel olarak Özel Gönderi Türlerini birçok şey için kullandım.
En yaygın olanı web sitelerindeki ayrı içerik bölümleridir. Bu, içeriğin yerleşik gönderilerden ve sayfalardan farklı şekilde gösterilmesi ve farklı davranması gerektiğinde en mantıklı olanıdır.
WP Mayor'un ayrıca özel bir "Haberler" gönderi türüne sahip olacağını hayal edelim. Sadece bu özel gönderi türünü kaydederek aşağıdaki avantajlara sahip olabilirsiniz:
- WP Admin'deki menüde ayrı bir "Haberler" öğesi.
- Kullanıcılara ve kullanıcı rollerine bu türe farklı yetenekler verme şansı.
- Ön uçta tek haber öğelerini göstermek için farklı şablonlara sahip olun.
- Haberler için ayrı bir arşiv ve besleme.
- Ek gönderi meta verileri yalnızca haberlerle birlikte saklanır ve haberler için görüntülenir.
Ayrıca çeşitli eklentilerdeki içerik öğeleri için Özel Gönderi Türlerini de kullandım. Bir zamanlar tatil evleri için, evlerin, rezervasyonların ve ödemelerin her birinin benzersiz özelliklere sahip ayrı bir Özel Posta Türü olduğu bir rezervasyon platformu oluşturmuştum. Bu, WordPress için çoğu e-ticaret eklentisinin de yaptığı bir şeydir.
Başka bir durumda, giden tüm e-postaların içeriğini günlüğe kaydetmek istedim. Bu nedenle, e-posta içeriğini ve yalnızca WordPress arka ucundaki uygun yeteneklerle görülebilen tüm ekli meta verileri içeren bir "Günlük" gönderi türü oluşturdum.
Son olarak, orijinal olarak geliştirdiğim Gelişmiş Reklamlar eklentisi, reklam içeriğini depolamak için bir CPT kullandı.
Bunlar Özel Gönderi Türlerinin yalnızca birkaç örneğidir. Yıllar boyunca karşılaştığım diğer birçok heyecan verici kullanım örneğinden bahsetmeyi unuttuğumu biliyorum.
WordPress'teki CPT'lerin temel avantajı, yalnızca birkaç satır koda veya bir eklenti aracılığıyla hızlı kuruluma ihtiyaç duymalarıdır ve WordPress, bunları yönetmek ve sitenizde görüntülemek için ihtiyaç duyduğunuz mantığın çoğunu üstlenir. Öyleyse, WordPress Özel Yazı Türlerinin nasıl oluşturulacağına hemen geçelim.
Özel Gönderi Türü Oluşturma
Özel Gönderi Türleri manuel olarak veya bir eklenti aracılığıyla oluşturulabilir.
Kodlama konusunda deneyiminiz yoksa eklentiler, özel gönderi türleri oluşturmanızı çok daha kolaylaştırır.
Eklenti kullanmanın bir dezavantajı, eklentiyi siler silmez Özel Gönderi Türünüzün kaybolmasıdır. Muhtemelen veritabanında hala mevcut olsa da, WordPress artık ön uçta veya arka uçta bunu bilmiyor.
Bunu onlarca kez yapmış bir geliştirici olarak hala manuel yöntemi tercih ediyorum. Ancak, WordPress Özel Yazı Türü geçici olarak kullanılıyorsa veya bir müşteri için vitrin oluşturmak için güzel kullanıcı arayüzlerine sahip eklentileri de kullandığımı memnuniyetle kabul ediyorum.
Özel Gönderi Türlerine İlişkin Kararlar
Özel Gönderi Türümüzü oluşturmak için kullandığımız yönteme rağmen, öncelikle birkaç karar vermemiz gerekiyor. Teorik olarak bunlardan herhangi birini daha sonra değiştirebilirsiniz ancak bunu yapmak sitenizi ve kurulumunuzu büyük ölçüde etkileyebilir; bu nedenle bunları önceden düşünmek en iyisidir.
Kamuya açık mı, değil mi?
Özel Gönderi Türleriyle ilgili ana karar, bunları kimin görmesi ve onlarla etkileşimde bulunması gerektiğidir. Özel kodunuzla veya bir eklenti içinde, arşivler ve doğrudan erişilebilen tek sayfalar dahil olmak üzere CPT'nin ön uçta görünüp görünmeyeceğini ve kullanıcıların onu arama yoluyla bulup bulmayacağını seçebilirsiniz. Menü öğesiyle birlikte WordPress sitenizin arka ucunda mı görünmeli?
Bir "Haber" CPT'si muhtemelen ön uçta tamamen görünür olsa da, dahili bir günlük veya ödemeler gibi bir şey, WordPress arka ucunuzda belirli bir role sahip kullanıcılarla sınırlı olabilir.
Hiyerarşik
WordPress Yazıları ve Sayfaları yazı türlerinin biraz farklı davrandığını fark etmiş olabilirsiniz. Sayfaların ön uçta bir arşivi yoktur ancak üst ve alt sayfalarınız olabilir.
İkincisine "hiyerarşi" denir ve bu, kendi yazı türünüzü oluştururken de tanımlanır.
Hiyerarşik gönderi türleri için düzenleme sayfası, bir ana sayfa ve sipariş seçme seçeneği sunar.
Sayfalardan otomatik olarak menüler veya listeler oluştururken sıra ve ana sayfa önemli olabilir. Hiyerarşi URL bilgisinde de görülebilir. Sayfam, ana sayfa olarak "Belgeler" ve "Sorun Giderme" ise, nihai URL documentation/troubleshooting
olabilir.
İpucu: Daha derin bir hiyerarşiye sahip bir CPT'niz varsa, gönderileri hızlı bir şekilde doğru sıraya göre düzenlemek için İç İçe Sayfalar eklentisini kullanmanızı öneririm.
Blok veya klasik düzenleyici
Özel Gönderi Türü oluştururken size “REST API”de gösterilip gösterilmeyeceği sorulur. Bu teknik terim çok önemli bir şey yapar: CPT'nizin blok düzenleyiciyi mi yoksa klasik düzenleyici görünümünü mü kullandığını belirler.
Genel bir kural olarak, gönderi türünüz normal içeriğe benziyorsa ve WordPress bloklarını kullanmak istiyorsanız blok düzenleyiciyi kullanmak mantıklıdır. İçerik için ekranın büyük bir kısmına ihtiyaç duymayan herhangi bir Özel Gönderi Türü, klasik düzenleyiciyi seçmelidir. Bu nedenle REST API aracılığıyla teslim edilmemelidir.
URL bilgileri ve yapısı
Yapmanız gereken bir diğer kritik karar da CPT sümüklüböceklerine isim vermektir. "Haberler" gönderi türümüze URL'de news
olarak başvurulabilir, ancak daha gösterişli dahili adlarınız varsa ön uç URL'ler için kısa bir form seçmek isteyebilirsiniz.
Bu, SEO'nuz için önemli bir karar olabilir, bu nedenle bunun hakkında düşünmek için birkaç dakikanızı ayırın.
Desteklenen öğeler
Oluşturduğunuz gönderi türüne bağlı olarak aşağıdaki öğeler için desteğin etkinleştirilip etkinleştirilmeyeceğine önceden karar vermek isteyebilirsiniz:
- Başlıklar (varsayılan olarak etkindir)
- Düzenleyici görünüyor (varsayılan olarak etkindir)
- Yorumlar
- Revizyonlar
- Yazarlar
- Alıntılar
- Küçük resimler
İnce ayar yapmak için daha birçok seçenek var. Bununla birlikte, WordPress Özel Yazı Türümüzü kullanmadan önce dikkate alınması gereken en önemli hususlar yukarıdakilerdir.
Bir eklentiyle Özel Gönderi Türü oluşturun
Bunu aklımızda tutarak, bir eklenti kullanarak Özel Gönderi Türleri oluşturmaya bakalım ve ardından aynısını manuel olarak yapalım.
Wordpress.org'un en popüler ücretsizlerinden birini seçeceğim: WebDevStudios'un Özel Gönderi Türü Kullanıcı Arayüzü (CPTUI).
Arayüzleri oldukça basittir ve bir Özel Yazı Türleri eklentisinden bekleyebileceğiniz tüm seçeneklere sahiptir. Bununla birlikte, özel yazı türlerinin hala anlaşılması gereken soyut bir kavram olduğunu ve sıradan bir WordPress yayıncısının seçenekler hakkında daha derin bilgi sahibi olmadan düzeltmesi gereken bir özellik olmadığını da açıkça ortaya koyuyor.
İpucu: Kişisel olarak CPT'lerim için "genel" seçenekler konusunda tutucuyum ve onları ön uçta kimin görmesi gerektiği ve arka uçta kimin değiştirebilmesi gerektiği konusunda bunları mümkün olduğunca sınırlandırıyorum. Gerekirse daha sonra istediğiniz zaman daha fazla erişim verebilirsiniz.
Özel Gönderi Türü Kullanıcı Arayüzünün Avantajları
Bu eklentiyle ilgili hoşuma giden, başkalarının sahip olabileceği veya olmayabileceği birkaç şey var.
CPT'lerimi genellikle manuel olarak oluşturduğum için etiketleri yazmanın çok zaman aldığını biliyorum. Hepsini CPT'nizin adından bahsedecek şekilde ayarlamak istiyorsanız yaklaşık üç düzine var. Yukarıdaki ekran görüntüsünde görebileceğiniz gibi, Özel Gönderi Türü UI eklentisinin bu etiketleri sizin için otomatik olarak doldurma seçeneği vardır. Bunları daha sonra arayüzden ayarlayabilirsiniz.
Daha sonra Özel Gönderi Türümü kaydedebilir ve daha sonra düzenleyebilirim . Sümüklü böcek bile değiştirebilirim ve eklenti daha sonra bu türdeki tüm gönderileri taşıyacaktır. Buna ihtiyaç duyacağım bir durumu önlemeye çalışsam da bunun mümkün olduğunu ve eklenti tarafından çözüldüğünü bilmek güzel.
Özel Gönderi Türü Kullanıcı Arayüzü, gönderi türlerime genel bir bakış sağlar. Biraz bunaltıcı gelse de, gözden geçirilmesi özel koddan çok daha kolaydır. Ayrıca son sütundaki şablonların listesini görmek de hoşuma gidiyor.
Bu şablonlar WordPress Özel Yazı Türlerinin büyüsünün bir parçasıdır. Haber CPT'miz sümüklü news
kullansaydı, WordPress, o yazı tipinin arşiv sayfasını veya tek bir haber sayfası için single-news.php
oluşturmak için temanızda archive-news.php
adlı bir dosyayı otomatik olarak arardı. Daha fazla bilgi için Şablon Hiyerarşisi'ne bakın.
CPTUI ile kod oluşturma
Sonunda Özel Gönderi Türü Kullanıcı Arayüzünü tavsiye etmemi sağlayan özellik , CPT'yi PHP koduna aktarma aracıydı. CPT UI > Araçlar > Kodu Al altında, eklentinizde veya functions.php
dosyasında kullanacağınız PHP kodunu bulacaksınız. İnsanları kilitlemedikleri için eklenti geliştiricilerine teşekkür ederiz.
Bu, CPTUI'yi geliştiriciler için ideal bir araç haline getiriyor çünkü arayüz aracılığıyla hızlı bir şekilde Özel Gönderi Türü ayarlayıp bunu kullanmak için PHP kodunu alabiliyoruz. Hatta müşterimizin bunu bir test sitesinde (tüm etiketler vb. ile birlikte) kurmasına ve ardından onu ihtiyacımız olan yere taşımasına izin verebiliriz.
Eklentide bulamadığım tek seçenek, özel yazı tipini tüm varlıklarıyla birlikte kaldırmak. Genel olarak, bir eklentiyi veya kodu silerseniz özel gönderiler veritabanında kalır. Ancak bunu temizlemek için özel eklentiler var.
Kodu kullanma
Bir geliştiriciyseniz ve kod kullanarak Özel Gönderi Türü uygulamak istiyorsanız, sizi WordPress belgelerindeki ilgili bölümlere yönlendirmeme izin verin.
Yeni bir Özel Gönderi Türü kaydetmeye yönelik temel işlev, Register_post_type işlevidir. Parametreleri yukarıda bahsettiğim tüm seçenekleri ayarlamanıza olanak tanır.
Tüm Gönderi Türleri veritabanınızdaki wp_posts
tablosunda saklanır. post_type
alanı, bir yazı tipinin hangi girişe ait olduğunu belirler.
Özel Gönderi Türünüz içerikten daha fazlasını içeriyorsa gönderi meta verilerini kullanabilirsiniz. Bu veriler wp_postmeta
saklanır.
Bu arada, bazı eklentiler içerik türlerini yönetmek için özel tablolar kullanır. Özel Yazı Türleri API'sı ile birlikte gelen tüm yerleşik WordPress özelliklerini ve işlevlerini kullanamayacağınız için gerçekten mecbur kalmadıkça bu yola gitmeyin.
Özel Gönderi Türlerini Genişlet
Özel Gönderi Türünüz herkese açıksa onu daha da özelleştirmek isteyebilirsiniz. İşte birkaç seçenek.
Özel Alanlar ve Meta Kutular
Etkinlikler veya mağaza ürünleri gibi daha gelişmiş CPT'ler içerikten daha fazlasına ihtiyaç duyar. Özel alanların devreye girdiği yer burasıdır. Verilerinizi çeşitli şekillerde yapılandırmak için giriş alanları sunarlar. Örneğin, bir "Etkinlik" gönderi türü, etkinliklerin görüntülenip filtrelenebilmesi için bir başlangıç ve bitiş tarihine veya bir mekana ihtiyaç duyabilir.
Özel kodla özel alanlar ve meta kutular ekleyebilseniz de, çok iyi bilinen Gelişmiş Özel Alanlar bunun için mükemmel bir eklentidir. O kadar çok seçeneğe sahip ve o kadar iyi korunuyor ki, bir geliştirici olarak ben bile kendi sitelerimde özel alanları kodlamam.
Özel Taksonomiler
Varsayılan "Gönderiler" gönderi türü "Kategoriler" ve "Etiketler" ile sipariş edilebildiğinden, Özel Gönderi Türünüz için sınıflandırmaları da kaydedebilirsiniz.
Yukarıda önerdiğim Özel Gönderi Türü UI eklentisi, bunları oluşturmanıza da yardımcı olur.
Yetenek Yönetimi
Sitenizde yalnızca yeni Özel Gönderi Türünüzü oluşturup değiştirebilen veya mevcut ilgili kullanıcı rollerini ayarlayabilen yazarlar için yeni bir rol oluşturmak amacıyla Üyeler gibi eklentileri kullanabilirsiniz. Editoryal iş akışınız her gönderi türü için farklıysa bu önerilir.
Gönderi Türlerini Değiştirme
Şu anda WordPress ile oluşturulmuş dahili bir bilgi tabanındaki içeriği yeniden düzenliyorum. Burada gönderilerin ve sayfaların çok farklı hedefleri var. Bazıları hedef değiştirdi, bu yüzden gönderi türünü değiştirecek bir çözüme ihtiyacım vardı.
Herkese açık bir gönderi türüyle bunu hafifçe yapmanızı tavsiye etmesem de, benzer gönderi türlerine sahip, herkese açık olmayan bir sitede bunu yapmanın hiçbir sorunu yoktur. Bunu başarmak için, bunu zahmetsizce yapmanızı sağlayan mükemmel bir eklenti olan Post Type Switcher'ı yükledim. Eklentiyi yükledikten sonra eklenti, “Gönderiyi Düzenle” ekranına bir “Gönderi Türü” bölümü ekleyecektir. Gönderi türlerini gerektiği gibi değiştirmek için bu arayüzü kullanabilirsiniz.
Çözüm
Özel Yazı Türlerini hala WordPress'in son on yılda ve sonrasında gelişmesine olanak tanıyan kritik bir özellik olarak görüyorum. Favori CMS'mizi basit bir blog platformundan etkinlikleri yönetmek veya çevrimiçi alışveriş için çok yönlü bir araca dönüştüren temel budur.
Birçok web sitesinde kullanılan eklentileri oluştururken hala yeni yazı türleri oluşturmak için kodlarla karşılaşıyorum. Ancak kendim ve müşterilerim için site oluştururken eklentileri kullanıyorum. Özel Gönderi Türlerini oluşturmayı ve değiştirmeyi çok daha basit hale getiriyorlar ve benim oluşturabileceğimden çok daha iyi bir kullanıcı arayüzüne sahipler.