Özel taksonomiler
6 dk okuma
Bir taksonomi, içeriği gruplamanın bir yoludur. WordPress'te iki yerleşik taksonomi vardır: Categories ve Tags. Özel bir taksonomi, Kitaplar için Türler ya da Etkinlikler için Şehirler gibi kendi gruplamanızı ekler. Bir taksonomideki her girdi bir terimdir (örneğin "Fantezi").
Taksonomiler her planda kullanılabilir. Özel yazı türleri dahil her yazı türünde çalışır.
İki biçim vardır:
Biçim | Hierarchical ayarı | Görünümü |
|---|---|---|
Kategori tarzı | Açık | Düzenleyicide onay kutuları; terimlerin bir üst terimi olabilir. |
Etiket tarzı | Kapalı | Öneri sunan serbest metin kutusu; üst terim yok. |
Nerede bulunur
WPM Fields › Taxonomies ekranını açın. Listede şu sütunlar bulunur: Key, Plural label, Post types, Status ve REST API. Düzenlemek için bir satıra tıklayın; yeni oluşturmak için Add taxonomy düğmesini kullanın.
Taksonomi oluşturma
- Add taxonomy düğmesine tıklayın.
- Plural label ("Genres") ve Singular label ("Genre") alanlarını doldurun.
- Taxonomy key değerini kontrol edin (siz düzenleyene kadar tekil etiketten otomatik doldurulur).
- Post types altında taksonominin ait olduğu her türü işaretleyin. Varsayılan Post türüdür.
- Kategori tarzı için Hierarchical seçeneğini işaretleyin; etiket tarzı için kapalı bırakın.
- Create taxonomy düğmesine tıklayın. "Taxonomy created." mesajını görürsünüz.
Yeni taksonomi, seçilen her yazı türünün menüsü altında (veya Posts menüsünde) ek bir ekran olarak görünür.
Basics bölümü
Alan | Varsayılan | Ne işe yarar |
|---|---|---|
Plural label / Singular label | boş (zorunlu) | Menü ve form ifadeleri. |
Taxonomy key | tekil etiketten | 1 ile 20 karakter: küçük harfler, rakamlar, tireler, alt çizgiler. Oluşturulduktan sonra değiştirilemez. |
Post types | Post | Taksonominin bağlandığı yazı türleri. Herkese açık yazı türlerini ve ekler ile bloklar dışındaki diğer kayıtlı türleri listeler. |
Public | Açık | "Show it in the admin and use it on the site (when the other settings allow)." |
Hierarchical | Kapalı | "Like categories: terms can have a parent. Turn off for tag-style taxonomies." |
Active | Açık | Kapalıyken taksonomi kaydedilmez. "Its terms stay in the database." |
Advanced settings | Kapalı | Altı sekme gösterir: General, Labels, Visibility, URLs, REST API, Permissions. |
Anahtar kuralları
Bir sorun olduğunda şu mesajları görürsünüz:
- "Taxonomy key is required."
- "Taxonomy key must be 1–20 characters: lowercase letters, numbers, hyphens, underscores only."
- "A taxonomy with this key already exists in Mass Custom Fields."
- "This taxonomy key is reserved by WordPress." Çekirdek taksonomiler (
category,post_tag,post_format,nav_menu,link_categoryve diğerleri) ile ayrılmış sorgu sözcükleri (type,name,year,term,tag,searchve benzerleri) reddedilir. - "This taxonomy is already registered by WordPress or another plugin."
Post type "key" does not exist.İşaretlediğiniz bir yazı türü etkin değil veya kayıtlı değil.
Advanced sekmeleri
General
Ayar | Varsayılan | Etkisi |
|---|---|---|
Description | boş | Taksonomiyle birlikte saklanır. |
Keep term order | Kapalı | "Terms keep the order they were assigned in (wp_set_object_terms())." Normalde terimler alfabetik sıralanır. |
Default term | Kapalı | "Create a default term that can't be deleted." Bu taksonomide hiç terimi olmadan kaydedilen yazılar bu terimi otomatik olarak alır. |
Term name | boş | Varsayılan terim açıkken zorunludur: "Default term name is required when default term is enabled." |
Term slug | boş | İsteğe bağlı; boşsa addan oluşturulur. |
Term description | boş | İsteğe bağlı. |
Varsayılan terim, taksonomiyi kaydettikten sonraki ilk kayıt işleminde oluşturulur.
Labels
Yazı türlerindekiyle aynı davranış: 24 etiket alanı oluşturulan varsayılanı gri yer tutucu olarak gösterir, boş bir alan varsayılanı kullanır, Regenerate from labels hepsini varsayılanlarla doldurur (ve geçersiz kılma değeri olarak saklar), Clear overrides ise boşaltır. Bkz. General and Labels.
Anahtarlar: name, singular_name, menu_name, all_items, edit_item, view_item, update_item, add_new_item, new_item_name, parent_item, parent_item_colon, search_items, popular_items, separate_items_with_commas, add_or_remove_items, choose_from_most_used, not_found, no_terms, items_list_navigation, items_list, most_used, back_to_items, item_link, item_link_description.
Visibility
Ayar | Varsayılan | Etkisi |
|---|---|---|
Show in admin | Açık | Taksonomiye bir yönetim ekranı verir. |
Show in the admin menu | Açık | Yazı türünün altına bir menü girdisi ekler. |
Show in navigation menus (Appearance → Menus) | Açık | Terimler menülere eklenebilir. |
Show in the Tag Cloud widget | Açık | Terimler Tag Cloud widget'ında görünür. |
Show in Quick Edit and Bulk Edit | Açık | Editörlerin terimleri liste ekranından belirlemesine izin verir. |
Show a column in post lists | Kapalı | Yazı türünün liste ekranına terimleri gösteren bir sütun ekler. Çoğu taksonomi için önerilir. |
Meta box | Default (based on hierarchy) | Yazı düzenleme ekranındaki kutu; aşağıya bakın. |
Meta box seçenekleri:
Seçenek | Editörlerin gördüğü |
|---|---|
Default (based on hierarchy) | Hiyerarşik taksonomiler için bir onay listesi, düz taksonomiler için bir etiket kutusu. |
Categories meta box | Her zaman onay listesi. |
Tags meta box | Her zaman etiket kutusu. |
Custom callback | Kendi işleviniz (adı Custom callback (PHP function name) alanına yazılır). |
None | Hiç kutu yok. Terimler yine de kodla, REST API ile ve (etkinse) Quick Edit üzerinden belirlenebilir. |
Özel bir geri çağrı, bir WordPress meta kutusu işlevi (post_categories_meta_box, post_tags_meta_box) olmalı veya wpmcf/taxonomies/allowed_callbacks filtresiyle izin verilmelidir. Aksi halde kaydetme "Meta box callback must be a WordPress meta box function or one allowed by the wpmcf/taxonomies/allowed_callbacks filter." hatasıyla başarısız olur. Meta box sanitization callback (optional) alanı da aynı kurala tabidir.
add_filter( 'wpmcf/taxonomies/allowed_callbacks', function ( array $allowed, string $arg ) {
if ( 'meta_box_cb' === $arg ) {
$allowed[] = 'my_genre_meta_box';
}
return $allowed;
}, 10, 2 );URLs
Ayar | Varsayılan | Etkisi |
|---|---|---|
Permalinks | Default (taxonomy key) | Default (taxonomy key), Custom slug veya Disabled. Terim sayfaları |
Custom slug | boş | Yalnızca Custom slug ile. |
Use the front URL prefix (with_front) | Açık | Kalıcı bağlantı önekinizi içerir (örneğin |
Hierarchical URLs | Kapalı | "For hierarchical taxonomies, include the parent slugs in term URLs." |
Publicly queryable | Açık | Terim sayfaları ön yüzde istenebilir. |
Disable query variable | Kapalı |
|
Custom query variable (optional) | boş | Sorgu değişkeni olarak anahtarın yerini alır. |
URL'leri değiştirmek, bir sonraki sayfa yüklemesinde çalışacak bir yeniden yazma temizliği (rewrite flush) planlar. Settings › Permalinks ekranını yeniden kaydetmeniz gerekmez. Bkz. Custom post types.
REST API
Yazı türleriyle aynı dört alan: Show in the REST API (On), REST base, REST namespace (wp/v2) ve REST controller class (optional). Blok düzenleyicinin taksonomi panelini göstermesi için Show in the REST API açık olmalıdır. Bkz. Permissions and REST API.
Permissions
Ayar | Varsayılan | Etkisi |
|---|---|---|
Use default capabilities | Açık | "Recommended. WordPress decides who can manage and assign terms." |
Manage terms, Edit terms, Delete terms, Assign terms | boş | Varsayılan kapalıyken gösterilir. Her işlem için gereken yetki adını yazın; örneğin |
Update count callback (optional) | boş | Terim sayılarını yeniden hesaplayan bir işlev. İzin verilenler: |
Yetki adları küçük harflere, rakamlara, tirelere ve alt çizgilere göre temizlenir. Bir işlem için WordPress'in varsayılanını korumak istiyorsanız alanı boş bırakın.
Taksonomiyi bir yazı türüne bağlama
Eşdeğer iki yol vardır:
- Taksonomide: Post types altındaki yazı türlerini işaretleyin.
- Yazı türünde: General sekmesindeki Taxonomies altında taksonomiyi işaretleyin (General and Labels). Yerleşik Categories veya Tags taksonomilerini özel bir türe eklemenin yolu da budur.
Taksonomiler her istekte yazı türlerinden önce kaydedilir; bu nedenle ikisi de kaydedildikten sonra oluşturulma sırasının önemi yoktur. Ancak kaydetme anında ikisi de mevcut olmalıdır: etkin olmayan veya henüz var olmayan bir yazı türüne taksonomi bağlayamazsınız.
Düzenleme, devre dışı bırakma ve silme
- Düzenleme: anahtar dışındaki her şey. Save changes düğmesine tıklayın; "Taxonomy saved." mesajını görürsünüz.
- Active kapalı: taksonomi artık kaydedilmez. Terimler ve atamaları veritabanında kalır ancak kullanılamaz.
- Silme (çöp kutusu simgesi): "This removes the registration for «key». Terms and assignments may remain in the database." Mevcut terimler silinmez. Onları geri getirmek için aynı anahtarla bir taksonomi yeniden oluşturun.
Terimleri sitenizde kullanma
Taksonomiler WordPress'e kaydedilir, bu nedenle olağan işlevler çalışır:
$terms = get_terms( array( 'taxonomy' => 'genre', 'hide_empty' => false ) );
$books = new WP_Query( array(
'post_type' => 'book',
'tax_query' => array(
array( 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => 'fantasy' ),
),
) );Terimlerde ek veri saklamak için Taxonomy konum kuralıyla bir alan grubu oluşturun; bkz. Field groups.
Hook'lar
wpmcf/taxonomies/before_register, wpmcf/taxonomies/register_args, wpmcf/taxonomies/after_register ve wpmcf/taxonomies/allowed_callbacks yazı türlerindeki karşılıkları gibi çalışır. Bkz. Hooks.
Sorun giderme
Taksonomi düzenleyicide görünmüyor. Active, Show in admin ayarlarını, yazı türünün işaretli olduğunu ve Meta box değerinin "None" olmadığını kontrol edin. Blok düzenleyici için Show in the REST API açık olmalıdır.
"Post type … does not exist." Yazı türü etkin değil, silinmiş veya aynı anda oluşturuluyor. Önce yazı türünü kaydedin, sayfayı yenileyin, ardından bağlayın.
Terim sayfaları 404 döndürüyor. Kalıcı bağlantı yapısı Plain, slug bir sayfayla çakışıyor veya Publicly queryable kapalı. Bir değişiklikten sonra sonraki sayfa yüklemesini bekleyin.
Varsayılan terim görünmüyor. Kaydettikten sonra yönetim panelini bir kez yenileyin; terim sonraki kayıt işleminde oluşturulur.
Hâlâ takıldınız mı? Destek ile iletişime geçin