- Konu sahibi
- #1
WordPress özel yazı türü, standart yazı ve sayfalardan farklı içerikleri kendi adı, yönetim ekranı, adres yapısı ve sorgu kurallarıyla yönetmenizi sağlayan içerik türüdür. İngilizcesi
Özel yazı türü yeni bir WordPress kurulumu değildir ve yalnızca özel alan eklemekle aynı şey değildir. Örneğin “Projeler” adlı bir içerik türü oluşturduğunuzda yönetim panelinde projeleri ayrı yönetebilir, bunlara özel kategori yapısı ve şablonlar tanımlayabilirsiniz.
WordPress içerikleri, tür bilgisiyle birlikte saklar. Yerleşik
Örneğin bir ajans sitesinde şu ayrım yapılabilir:
“Proje” içerikleri normal yazı olarak oluşturulursa arşiv, menü, sorgu ve şablon ayrımı zamanla zorlaşabilir. Özel yazı türü bu içerikleri anlamlı bir yapı altında toplar.
Özel yazı türüne gerçekten ihtiyaç olup olmadığını aşağıdaki ayrım kolaylaştırır.
Sadece yazıya birkaç ek bilgi ekleyecekseniz özel yazı türü şart değildir. Ancak içeriklerin ayrı listelenmesi, farklı yetkilere sahip olması veya kendine özgü arşiv ve şablonlarının bulunması gerekiyorsa uygun bir seçimdir.
Özel yazı türünü tema dosyasına da ekleyebilirsiniz; fakat tema değiştiğinde içerik türünün kaybolmaması için ayrı bir eklenti daha uygun bir yapıdır. Aşağıdaki dosya, “Projeler” adlı en küçük örneği oluşturur.
Bu örnek title/editor/thumbnail desteğini içerik türüne ekler; öne çıkan görsel paneli için temanın post-thumbnails desteği de bulunmalıdır. Varsayılan capability türü normal yazılarla paylaşılır; sırf ayrı menü oluşması ayrı güvenlik/rol sınırı yaratmaz. İhtiyaç varsa capability_type/map_meta_cap ve rol yetkileri ayrıca tasarlanır. Müşteri adı, proje tarihi veya bütçe gibi alanlar gerektiğinde özel alan eklentisi ya da uygun bir alan yönetimi çözümüyle ayrıca eklenmelidir. Bu alanların eklenmesi, özel yazı türünün kendiliğinden tüm özel alanları oluşturduğu anlamına gelmez.
Türün teknik anahtarı en fazla20 karakter olmalı, projeye özgü ve çakışmayacak biçimde seçilmelidir. Örnek proje anahtarı öğretim içindir. Tema/eklenti kapatılınca kayıtlar veritabanından otomatik silinmez; tür kaydı yüklenmediği için yönetimde ve sorgularda görünmeyebilir. Rewrite kurallarını her istekte flush etmeyin; etkinleştirme/değişiklik sonrası bir kez yenileyin.
Hayır. Özel yazı türü içeriğin ana sınıfıdır; kategori veya benzeri sınıflandırmalar ise o tür içindeki içerikleri gruplandırır. Bir “Proje” türüne sektör veya durum sınıflandırması eklenebilir.
Özel tasarım otomatik oluşmaz. Tema uygun tekil/arşiv şablonunu ya da hiyerarşideki genel fallback şablonunu kullanabilir; özel görünüm istiyorsanız o türe ait şablon hazırlayın. Temel gösterim için her zaman özel sorgu yazmak şart değildir.
Aynı kayıt aynı anda iki farklı içerik türü olarak çalışmaz. Gerekirse içeriği uygun türe taşımanız veya iki tür arasında bağlantı kuran ayrı bir yapı kullanmanız gerekir.
Custom Post Type olan bu yapı; ürün, proje, ilan, ekip üyesi, etkinlik veya doküman gibi içerikleri blog yazılarından ayırmak için kullanılır.Özel yazı türü yeni bir WordPress kurulumu değildir ve yalnızca özel alan eklemekle aynı şey değildir. Örneğin “Projeler” adlı bir içerik türü oluşturduğunuzda yönetim panelinde projeleri ayrı yönetebilir, bunlara özel kategori yapısı ve şablonlar tanımlayabilirsiniz.
Nasıl çalışır?
WordPress içerikleri, tür bilgisiyle birlikte saklar. Yerleşik
post yazılar, page sayfalar ve medya gibi türler buna örnektir. Özel yazı türü de aynı temel içerik sistemini kullanır; ancak kendine ait bir tür adı, etiketleri ve yetenekleri olabilir.Örneğin bir ajans sitesinde şu ayrım yapılabilir:
- Yazılar: Haberler ve duyurular.
- Sayfalar: Hakkımızda ve iletişim gibi sabit içerikler.
- Projeler: Tamamlanan çalışmaların başlık, açıklama, görsel ve müşteri bilgileri.
“Proje” içerikleri normal yazı olarak oluşturulursa arşiv, menü, sorgu ve şablon ayrımı zamanla zorlaşabilir. Özel yazı türü bu içerikleri anlamlı bir yapı altında toplar.
Kısa karşılaştırma
Özel yazı türüne gerçekten ihtiyaç olup olmadığını aşağıdaki ayrım kolaylaştırır.
| İçerik türü | Uygun kullanım | Temel ayrım |
|---|---|---|
| Yazı | Blog, haber, duyuru | Genellikle kronolojik içerik |
| Sayfa | Hakkımızda, iletişim, hizmetler | Sabit veya hiyerarşik içerik |
| Özel yazı türü | Ürün, proje, ilan, etkinlik | Belirli bir içerik modeline sahip ayrı içerik grubu |
Sadece yazıya birkaç ek bilgi ekleyecekseniz özel yazı türü şart değildir. Ancak içeriklerin ayrı listelenmesi, farklı yetkilere sahip olması veya kendine özgü arşiv ve şablonlarının bulunması gerekiyorsa uygun bir seçimdir.
En küçük çalışma örneği
Özel yazı türünü tema dosyasına da ekleyebilirsiniz; fakat tema değiştiğinde içerik türünün kaybolmaması için ayrı bir eklenti daha uygun bir yapıdır. Aşağıdaki dosya, “Projeler” adlı en küçük örneği oluşturur.
- Bilgisayarınızda
ornek-projeler.phpadlı bir dosya oluşturun ve şu içeriği ekleyin:
Kod:
<?php
/*
* Plugin Name: Örnek Projeler
*/
function ornek_projeler_turunu_kaydet() {
register_post_type( 'proje', array(
'labels' => array(
'name' => 'Projeler',
'singular_name' => 'Proje',
),
'public' => true,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'has_archive' => true,
'rewrite' => array( 'slug' => 'projeler' ),
) );
}
add_action( 'init', 'ornek_projeler_turunu_kaydet' );
- Dosyayı
wp-content/plugins/ornek-projeler/klasörüne koyun ve WordPress eklentiler ekranından etkinleştirin. - Yönetim panelinde “Projeler” bölümü görünüyorsa temel kayıt başarılıdır. Yeni bir proje oluşturup başlık ve içerik ekleyebilirsiniz.
- Genel adres yapısı kullanılıyorsa kalıcı bağlantı ayarlarını kaydedin. Bu işlem, yeni türün arşiv adresinin yeniden oluşturulmasına yardımcı olur; mevcut içeriklerin silinmesi beklenmez.
- Beklenen adres yapısı
example.com/projeler/ve tekil içerik içinexample.com/projeler/ornek-proje/biçimindedir. Adres açılmıyorsa önce eklentinin etkin olduğunu, tür adının çakışmadığını ve kalıcı bağlantı kurallarının yenilendiğini kontrol edin.
Bu örnek title/editor/thumbnail desteğini içerik türüne ekler; öne çıkan görsel paneli için temanın post-thumbnails desteği de bulunmalıdır. Varsayılan capability türü normal yazılarla paylaşılır; sırf ayrı menü oluşması ayrı güvenlik/rol sınırı yaratmaz. İhtiyaç varsa capability_type/map_meta_cap ve rol yetkileri ayrıca tasarlanır. Müşteri adı, proje tarihi veya bütçe gibi alanlar gerektiğinde özel alan eklentisi ya da uygun bir alan yönetimi çözümüyle ayrıca eklenmelidir. Bu alanların eklenmesi, özel yazı türünün kendiliğinden tüm özel alanları oluşturduğu anlamına gelmez.
Türün teknik anahtarı en fazla20 karakter olmalı, projeye özgü ve çakışmayacak biçimde seçilmelidir. Örnek proje anahtarı öğretim içindir. Tema/eklenti kapatılınca kayıtlar veritabanından otomatik silinmez; tür kaydı yüklenmediği için yönetimde ve sorgularda görünmeyebilir. Rewrite kurallarını her istekte flush etmeyin; etkinleştirme/değişiklik sonrası bir kez yenileyin.
Sık yapılan hatalar
- Özel yazı türünü temaya eklemek: Tema değişince içerik türünün yönetimi kaybolabilir. İçerik modelini ayrı eklentide tutmak daha güvenlidir.
- Tür adını sonradan değiştirmek:
projegibi teknik anahtarın değişmesi sorguları ve mevcut içerik ilişkilerini etkileyebilir. Görünen ad ile teknik anahtarı baştan ayırın. - Arşiv ile tekil şablonu karıştırmak: Tüm projelerin listesi arşivdir; tek bir projenin ayrıntısı farklı bir görünüm gerektirir.
- Her özel alan ihtiyacında yeni tür oluşturmak: Aynı içerik grubunun farklı bilgileri varsa yeni bir tür yerine alan eklemek daha anlamlı olabilir.
Kaynaklar
Sık sorulan sorular
Özel yazı türü ile kategori aynı şey midir?
Hayır. Özel yazı türü içeriğin ana sınıfıdır; kategori veya benzeri sınıflandırmalar ise o tür içindeki içerikleri gruplandırır. Bir “Proje” türüne sektör veya durum sınıflandırması eklenebilir.
Özel yazı türü oluşturunca otomatik olarak tasarımı hazır olur mu?
Özel tasarım otomatik oluşmaz. Tema uygun tekil/arşiv şablonunu ya da hiyerarşideki genel fallback şablonunu kullanabilir; özel görünüm istiyorsanız o türe ait şablon hazırlayın. Temel gösterim için her zaman özel sorgu yazmak şart değildir.
Bir içerik hem yazı hem özel yazı türü olabilir mi?
Aynı kayıt aynı anda iki farklı içerik türü olarak çalışmaz. Gerekirse içeriği uygun türe taşımanız veya iki tür arasında bağlantı kuran ayrı bir yapı kullanmanız gerekir.