Özel yazı türleri
5 dk okuma
Bir yazı türü bir içerik çeşididir. WordPress, Yazılar ve Sayfalar ile gelir; özel bir yazı türü Kitaplar, Etkinlikler veya Ekip Üyeleri gibi kendi içeriklerinizi ekler. Her tür kendi yönetim menüsünü, kendi liste ekranını ve kendi URL'lerini alır.
Mass Custom Fields, PHP yazmadan yazı türü kaydetmenizi sağlar. Tanım eklentinin ayarlar tablosunda saklanır ve her istekte, register_post_type() fonksiyonunu kendiniz çağırmışsınız gibi WordPress'e kaydedilir.
Özel yazı türleri her planda kullanılabilir.
Nerede bulunur
WordPress yönetim menüsünde WPM Fields › Post Types sayfasını açın. Sayfa alt başlığı şöyledir: "Register post types with every option WordPress offers, labels included."
Listede şu sütunlar bulunur:
Sütun | Anlamı |
|---|---|
Key | Yazı türü anahtarı, örneğin |
Plural label | Yönetim menüsünde görünen ad, örneğin "Books". |
Status | Etkin veya etkin değil. |
Archive | Türün bir arşiv sayfası varsa "On", yoksa bir tire. |
REST API | Tür REST API'de açıksa "On". |
Düzenlemek için bir satıra tıklayın. Yeni bir tane oluşturmak için sağ üstteki Add post type düğmesini kullanın. Aynı komuta Ctrl/⌘ K aramasından da ulaşılabilir.
Yazı türü oluşturma
- Şunu açın: WPM Fields › Post Types, ardından Add post type düğmesine tıklayın.
- Bir Plural label ("Books") ve bir Singular label ("Book") girin. İkisi de zorunludur.
- Şu alanı kontrol edin: Post type key. Siz düzenleyene kadar tekil etiketten otomatik doldurulur ("Book" değeri
bookolur). - Aşağıda açıklanan anahtarları seçin, ardından Create post type düğmesine tıklayın.
- "Post type created." mesajı görünür ve yeni tür, bir sonraki sayfa yüklemesinde yönetim menüsünde belirir.
Basics bölümü
Alan | Varsayılan | Ne yapar |
|---|---|---|
Plural label | boş (zorunlu) | Menü adı ve liste başlıkları ("All Books"). |
Singular label | boş (zorunlu) | "Add New Book", "Edit Book" ve benzeri etiketlerde kullanılır. |
Post type key | tekil etiketten | Küçük harfler, rakamlar, tireler ve alt çizgiler; 1 ila 20 karakter. Oluşturulduktan sonra değiştirilemez, çünkü yazılar bu anahtarla saklanır. |
Public | On | "Show it in the admin and on the site (when the visibility settings allow)." Kendi sayfası olmaması gereken içerikler için kapatın. |
Hierarchical | Off | "Like pages: entries can have a parent." Ayrıca öne çıkan görsel etiketlerinin varsayılan ifadesini "Cover Image" olarak değiştirir. |
Active | On | Kapalıyken yazı türü kaydedilmez. İçeriği veritabanında kalır. |
Advanced settings | Off | Diğer tüm seçenekleri içeren altı sekmeyi gösterir. |
Eğer Advanced settings kapalıysa, sekmelerdeki her şey varsayılan değerinde kalır (aşağıdaki sekme sayfalarına bakın). Basit bir tür için kapalı bırakabilirsiniz.
Anahtar kuralları
Anahtar, kaydettiğinizde kontrol edilir. Şu mesajlardan birini görürsünüz:
- "Post type key is required."
- "Post type key must be 1–20 characters: lowercase letters, numbers, hyphens, underscores only."
- "A post type with this key already exists in Mass Custom Fields."
- "This post type key is reserved by WordPress." Bu mesaj, çekirdek türleri (
post,page,attachment,revision,nav_menu_item,wp_block,wp_templateve diğerleri) ile WordPress'in ayrılmış sorgu sözcüklerini (type,name,year,page,author,search,order,title,statusve daha fazlası) kapsar. Ayrılmış bir anahtar WordPress sorgularını bozar. - "This post type is already registered by WordPress or another plugin."
Başka bir eklenti veya tema aynı anahtarı kaydedebilecekse kısa ve özgün bir anahtar seçin (wpm_book, book yerine).
Düzenleyici sekmeleri
Eğer Advanced settings açıksa, Basics bölümünün altında altı sekme görünür:
Sekme | Sayfa |
|---|---|
General, Labels | |
Visibility, URLs | |
Permissions, REST API |
Sekmeler yalnızca Advanced settings açıkken görünür. Kapattığınızda değerleri korunur ve uygulanmaya devam eder.
Yazı türünü düzenleme
Listede satıra tıklayın. Sayfa başlığı çoğul etiket olur. Anahtar dışındaki her şey değiştirilebilir. Save changes düğmesine tıklayın; "Post type saved." mesajını görürsünüz. Kaydedilmemiş değişikliklerle ayrılırsanız önce bir onay penceresi sorar.
Etiketler, menü ve desteklenen özelliklerdeki değişiklikler bir sonraki sayfa yüklemesinde etkili olur. URL'leri etkileyen değişiklikler (kalıcı bağlantı slug'ı, arşiv, feed'ler, sayfalama, ön ek, taksonomi slug'ları) ayrıca bir rewrite flush zamanlar; bu aşağıda anlatılıyor.
Kalıcı bağlantılar: "Save Permalinks" gerekir mi?
Hayır. Bir yazı türü (veya taksonomi) oluşturduğunuzda, düzenlediğinizde ya da sildiğinizde eklenti bir bayrak ayarlar. Bir sonraki sayfa yüklemesinde (herhangi bir yönetim veya ön yüz isteği) WordPress önce tüm türleri kaydeder, ardından yeniden yazma kurallarını bir kez yeniden oluşturur. Settings › Permalinks sayfasını ziyaret etmeniz gerekmez.
Bir sayfa yüklemesinden sonra bir URL hâlâ 404 veriyorsa:
- Kalıcı bağlantı yapısı (Settings › Permalinks) "Plain" olmamalıdır. Plain kalıcı bağlantılar hiçbir yazı türü için okunabilir URL'leri desteklemez.
- Başka bir eklenti aynı slug'ı kaydediyor olabilir. Farklı bir Custom slug seçin.
- Yönetim panelinde Settings › Permalinks sayfasını açıp bir kez Save Changes düğmesine tıklayın. Bu güvenlidir ve tam bir yeniden oluşturmayı zorlar.
Etkin, etkin değil ve silinmiş
Durum | Kayıtlı | Veritabanındaki yazılar | Yönetim panelinde |
|---|---|---|---|
Active | Evet | Evet | Menü, liste ekranı, düzenleyici |
Inactive (Active anahtarı kapalı) | Hayır | Korunur | Gizli. Yazılar açılamaz. |
Deleted (listedeki çöp kutusu simgesi) | Hayır | Korunur | Gizli. |
Silme işlemi "Delete post type?" diye sorar ve şunu açıklar: "This removes the registration for «key». Existing posts are not deleted." Yalnızca tanım kaldırılır. Yazılar eski türleriyle birlikte posts tablosunda kalır ve daha sonra aynı anahtarla bir tür oluşturursanız yeniden erişilebilir olur.
Bir tür kayıtlı olmadığı sürece çalışmayı bırakan şeyler:
- Menü girişi, liste ekranı ve ön yüz URL'leri.
- Taksonomiler ona bağlanamaz. Etkin olmayan veya eksik bir türü listeleyen bir taksonomiyi kaydetmek şu hatayla başarısız olur:
Post type "key" does not exist. - Üzerinde konumlandırılmış alan grupları hâlâ vardır, ancak konum kuralının eşleşeceği bir şey kalmaz.
Tanımınız yüklenirken başka bir eklenti veya tema aynı anahtarla bir tür kaydetmişse, eklenti kendi kaydını sessizce atlar ve diğeri kazanır.
Sitenizde gösterme
Etkin ve herkese açık bir tür, Archive page açıkken şu adreste kullanılabilir: /{slug}/ (bkz. Visibility ve URLs). Tekil girdiler şu adreste bulunur: /{slug}/{post-name}/. Bunları bir şablonda diğer yazı türleri gibi sorgulayın:
$books = new WP_Query( array(
'post_type' => 'book',
'posts_per_page' => 10,
) );Alan gruplarını türe Post type konum kuralıyla bağlayın, bkz. Konum kuralları. Değerleri şablon fonksiyonlarıyla okuyun.
Geliştiriciler için hook'lar
Hook | Tür | Amaç |
|---|---|---|
| action | Kayıttan önce tetiklenir. Argümanlar: |
| filter | Son |
| action | Kayıttan sonra tetiklenir. |
| action | Bir tanım kaydedildi veya silindi. Argüman: anahtar. |
| filter | Bir tanımın Meta box callback olarak kullanabileceği PHP fonksiyon adlarının izin listesi. Varsayılan olarak boştur. |
add_filter( 'wpmcf/post_types/register_args', function ( array $args, string $name ) {
if ( 'book' === $name ) {
$args['show_in_graphql'] = true;
}
return $args;
}, 10, 2 );Ayrıca bkz. Hook'lar ve değişkenler.
Sorun giderme
Menü girişi görünmüyor. Şunları kontrol edin: Active açık mı, Show in admin (Visibility sekmesi) açık mı ve Admin menu "Hide from the admin menu" olarak ayarlanmamış mı. Sayfayı bir kez yeniden yükleyin.
"This post type is already registered by WordPress or another plugin." Anahtar başka bir eklentiye ait. Başka bir anahtar kullanın veya o eklentiyi devre dışı bırakın. (Diğer eklentilerden içe aktarmalar ve taşımalar böyle bir türü etkin değil olarak kaydeder; böylece daha sonra geçiş yapabilirsiniz.)
Anahtarı yeniden adlandıramıyorum. Desteklenmez; alan oluşturulduktan sonra salt okunurdur. Yeni anahtarla yeni bir tür oluşturun, yazıları taşıyın (örneğin toplu düzenleme eklentisiyle), ardından eski tanımı silin.
Türü sildikten sonra yazılar kayboldu. Yazılar hâlâ veritabanında. Geri getirmek için aynı anahtarla yeniden bir tür oluşturun.
Tekil girdilerde veya arşivde 404. Yukarıdaki "Kalıcı bağlantılar" bölümüne bakın.
Hâlâ takıldınız mı? Destek ile iletişime geçin