WordPress'i ilk kurduğunuzda içeriğinizi düzenlemek için iki hazır kalıp gelir: "Yazı" (post) ve "Sayfa" (page). Yazılar tarihe göre sıralanan, kategorilere ayrılan blog içerikleri içindir; sayfalar ise "Hakkımızda", "İletişim" gibi tarihten bağımsız statik içerikler için. Bu iki kalıp basit bir blog için fazlasıyla yeterlidir. Ama siteniz büyüdükçe içeriğiniz bu ikisine sığmamaya başlar. Bir portfolyo sitesi işletiyorsanız her projeyi blog yazısı gibi tutmak; bir mimarlık ofisiyseniz her referansı sayfa olarak açmak kısa sürede içinden çıkılmaz bir karmaşaya döner.
İşte tam bu noktada Custom Post Type (özel içerik türü), kısaca CPT devreye girer. CPT, WordPress'e "Yazı ve Sayfa'nın yanına bir de Proje diye bir içerik türü ekle, onun kendi menüsü, kendi alanları ve kendi listesi olsun" demenin yoludur. Bu rehberde önce CPT'nin ne olduğunu ve ne zaman gerektiğini netleştireceğiz; ardından register_post_type fonksiyonuyla kod yazarak ve CPT UI eklentisiyle tek satır kod yazmadan aynı işi nasıl yapacağınızı adım adım göstereceğiz. supports, rewrite, has_archive ve menu_icon gibi ayarların ne işe yaradığını, son olarak da bu içeriği tema şablonuyla ziyaretçiye nasıl göstereceğinizi uygulamalı biçimde ele alacağız.
Custom Post Type Nedir?#
WordPress'in içeriğini tuttuğu tek bir tablo vardır: wp_posts. Şaşırtıcı olan şu ki bu tablo sadece blog yazılarını değil, sayfaları, menü öğelerini, revizyonları ve medya eklerini de tutar. Bunları birbirinden ayıran şey post_type adlı bir sütundur. Standart yazılar post, sayfalar page değerini taşır. Yani WordPress zaten en başından beri "içerik türü" kavramıyla çalışır; siz sadece kendi türünüzü bu sisteme tanıtırsınız.
Bir özel içerik türü oluşturduğunuzda WordPress size şunları hazır verir: yönetim panelinde kendi menüsü, "Tümü / Yeni Ekle" ekranları, blok editörüyle içerik girme, kendi URL yapısı ve isterseniz bir arşiv sayfası. Örneğin proje adlı bir CPT oluşturduğunuzda, panelde "Yazılar"ın hemen altında bir "Projeler" menüsü belirir ve projelerinizi blog yazılarına karıştırmadan, düzenli bir liste hâlinde yönetirsiniz.
CPT'nin en büyük faydası bu düzenliliğin ötesindedir. Her içerik türünü ayrı tuttuğunuz için o türe özel alanlar (fiyat, teslim süresi, müşteri adı), özel şablonlar ve özel filtreler tanımlayabilirsiniz. Bir e-ticaret eklentisi kurduğunuzda aslında arka planda product diye bir CPT oluşturulur; bir etkinlik eklentisi event, bir portfolyo eklentisi portfolio türü ekler. Yani CPT, WordPress'i basit bir blogdan gerçek bir içerik yönetim sistemine dönüştüren temel yapı taşıdır.
Ne Zaman Ozel Icerik Turu Gerekir?#
Her ihtiyaç için hemen yeni bir içerik türü açmak doğru değildir. Bazen bir kategori ya da etiket, aradığınız düzeni fazlasıyla sağlar. Karar verirken sorulacak temel soru şudur: "Bu içerik, yapı olarak Yazı ve Sayfa'dan gerçekten farklı mı, kendine ait alanları ve kendi listesi olması gerekiyor mu?" Cevap evetse CPT mantıklıdır. Aşağıdaki durumlar klasik CPT örnekleridir:
- Portfolyo / Projeler. Bir tasarımcı, ajans ya da yazılımcı için her proje; kapak görseli, müşteri adı, kullanılan teknolojiler ve canlı bağlantı gibi kendine özgü alanlar taşır. Bunları blog yazısı olarak tutmak hem karmaşa yaratır hem de blog akışını kirletir.
- Hizmetler. Bir işletmenin sunduğu her hizmet (web tasarım, SEO, danışmanlık) ayrı bir kart, ayrı bir açıklama ve fiyat bilgisi ister. Ana sayfada "Hizmetlerimiz" bölümünü bu türden otomatik besleyebilirsiniz.
- Referanslar / Müşteri yorumları. Kısa metin, müşteri adı, şirket ve puan alanlarından oluşan tekrar eden yapılar için idealdir.
- Ürün kataloğu (satış olmadan). Fiyat gösterip sepet istemeyen bir vitrin kataloğu için tam kapsamlı bir e-ticaret eklentisi yerine sade bir
urunCPT çoğu zaman yeterlidir. - Ekip üyeleri, etkinlikler, soru-cevap, emlak ilanları. Hepsi tekrar eden ve yapısal alanlara sahip içeriklerdir.
Buna karşılık "Gizlilik Politikası" ya da "Kariyer" gibi tek seferlik, tarihten bağımsız içerikler için CPT açmak gereksizdir; bunlar birer sayfadır. Benzer şekilde, düzenli yayınlanan haber ve makaleler zaten "Yazı" türüne aittir. CPT'yi, aynı şablonun defalarca tekrarlandığı ve her örneğin kendi verilerini taşıdığı durumlar için saklayın. Bu ayrımı doğru yaparsanız yönetim paneliniz sade, içeriğiniz düzenli kalır.
register_post_type ile Kodla Olusturma#
Kod yazmaktan çekinmiyorsanız, bir CPT tanımlamanın en temiz yolu WordPress'in çekirdek fonksiyonu register_post_type ile bunu yapmaktır. Bu kodu doğrudan temanızın functions.php dosyasına yazmak yerine küçük bir eklenti içine koymanız şiddetle önerilir. Çünkü tema değiştirdiğinizde içeriğiniz kaybolmasa bile onu kaydeden kod kaybolur ve türünüz panelde görünmez olur. Site içeriğinin yapısı temadan bağımsız olmalıdır.
Bunun için wp-content/plugins/ altında cloutr-cpt adında bir klasör açıp içine cloutr-cpt.php dosyası oluşturun ve şu kodu ekleyin:
<?php
/*
Plugin Name: Clou.TR Ozel Icerik Turleri
Description: Portfolyo/proje icerik turunu kaydeder.
Version: 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Dogrudan erisimi engelle
add_action( 'init', function () {
$labels = array(
'name' => 'Projeler',
'singular_name' => 'Proje',
'add_new' => 'Yeni Ekle',
'add_new_item' => 'Yeni Proje Ekle',
'edit_item' => 'Projeyi Duzenle',
'all_items' => 'Tum Projeler',
'menu_name' => 'Projeler',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-portfolio',
'menu_position'=> 5,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
'rewrite' => array( 'slug' => 'projeler' ),
'show_in_rest' => true, // Blok editoru (Gutenberg) icin gerekli
);
register_post_type( 'proje', $args );
} );
Bu eklentiyi panelden Eklentiler ekranında etkinleştirdiğiniz anda, sol menüde "Projeler" başlığı belirir. Kodda dikkat edilecek en kritik nokta, register_post_type çağrısının mutlaka init kancasına bağlanmasıdır; bu kancanın dışında çağırırsanız WordPress türü doğru zamanda tanıyamaz. İlk parametre olan 'proje', türün makine adıdır (post_type sütununa yazılan değer) ve en fazla 20 karakter olmalı, boşluk ya da Türkçe karakter içermemelidir. Bu adı sonradan değiştirirseniz eski içeriğe erişilemez hâle gelir, bu yüzden baştan iyi seçin.
Bir CPT kaydettikten sonra "URL'ler 404 veriyor" sorunuyla karşılaşırsanız telaşlanmayın; bu çok yaygındır. WordPress'in kalıcı bağlantı (permalink) kurallarının yeniden yazılması gerekir. Panelde Ayarlar > Kalıcı Bağlantılar ekranına gidip hiçbir şey değiştirmeden "Değişiklikleri Kaydet" butonuna basmanız bu kuralları tazeler ve sorunu çözer.
supports, slug, Arsiv ve Menu Ikonu Ayarlari#
register_post_type fonksiyonuna verdiğiniz $args dizisi, türünüzün davranışını baştan sona belirler. En sık kullanılan ayarları tek tek inceleyelim, çünkü doğru yapılandırma CPT deneyiminizin tamamını şekillendirir.
supports dizisi, içerik düzenleme ekranında hangi kutuların görüneceğini belirler. Örneğin bir referans (müşteri yorumu) türünde uzun bir metin editörüne ihtiyaç olmayabilir; sadece başlık ve öne çıkan görsel yeterli olur. En sık kullanılan değerler şunlardır:
| Değer | İşlevi |
|---|---|
title | Başlık alanı |
editor | Blok editörü (ana içerik) |
thumbnail | Öne çıkan görsel |
excerpt | Özet alanı |
custom-fields | Özel alanlar kutusu |
author | Yazar seçimi |
revisions | Revizyon geçmişi |
page-attributes | Sıralama ve üst öğe |
rewrite ayarı içindeki slug, içeriğinizin URL'sinde görünecek ön eki belirler. Yukarıdaki örnekte 'slug' => 'projeler' dediğimiz için bir projenin adresi siteadi.com/projeler/proje-adi/ biçiminde olur. Bu slug'ı Türkçe ve okunabilir seçmek hem kullanıcı hem de arama motoru dostudur; URL yapısının SEO üzerindeki etkisiyle ilgili olarak SEO hizmet sayfamıza da göz atabilirsiniz.
has_archive => true ayarı, türünüz için otomatik bir arşiv sayfası açar. Bu sayede siteadi.com/projeler/ adresine gidildiğinde tüm projeleriniz listelenir; bu arşivi ayrı ayrı sayfa oluşturmadan hazır elde edersiniz. public => true türü hem yönetim panelinde hem de sitenin ön yüzünde görünür kılar; bir içeriği yalnızca arka planda kullanacaksanız (örneğin ayarları saklamak için) bunu false yapabilirsiniz.
menu_icon ise panel menüsünde türünüzün yanında görünecek ikonu belirler. WordPress'in yerleşik Dashicons setinden bir isim verebilirsiniz; örneğin dashicons-portfolio, dashicons-cart, dashicons-groups gibi. menu_position ise bu menünün sol tarafta nereye yerleşeceğini kontrol eder (5 = Yazılar'ın altı, 20 = Sayfalar'ın altı). Son olarak show_in_rest => true ayarını atlamamak önemlidir; bu değer olmadan içeriğinizi modern blok editörü (Gutenberg) yerine eski klasik editörle düzenlersiniz.
CPT UI Eklentisiyle Kodsuz Olusturma#
Kod yazmak istemiyorsanız ya da bir müşteriye kendi içerik türlerini yönetme imkânı vereceksiniz, tam da bunun için tasarlanmış eklentiler vardır. Bunların en yaygını Custom Post Type UI (kısaca CPT UI) eklentisidir. Milyonlarca sitede kullanılan, ücretsiz ve güvenilir bu eklenti, register_post_type fonksiyonunun tüm ayarlarını görsel bir formla önünüze koyar. Benzer işlevleri sunan başka eklentiler için WordPress eklenti önerileri yazımıza da bakabilirsiniz.
Kurulum ve kullanım şöyle işler:
- Panelde Eklentiler > Yeni Ekle ekranına gidip "Custom Post Type UI" aratın, kurup etkinleştirin.
- Sol menüde beliren CPT UI > Add/Edit Post Types ekranını açın.
- Post Type Slug alanına makine adını yazın (örneğin
proje). Bu, koddaregister_post_type'ın ilk parametresine karşılık gelir. - Plural Label ve Singular Label alanlarına menüde görünecek çoğul ve tekil adları girin ("Projeler" ve "Proje").
- Aşağıdaki Settings bölümünde
Public,Has Archive,Menu Icon,Supportsgibi seçenekleri işaretleyin; bunlar birebir kod ayarlarının karşılığıdır. - Add Post Type butonuna basın. Menüde yeni türünüz anında belirir.
Eklentinin güzel bir tarafı, oluşturduğunuz ayarların PHP kodunu "Get Code" sekmesinden dışa aktarabilmenizdir. Yani eklentiyle deneyip beğendiğiniz bir yapının kodunu alıp kendi eklentinize taşıyabilir, sonra CPT UI'ı kaldırabilirsiniz. Bu, hem kod öğrenmek hem de üretimde eklenti bağımlılığını azaltmak için pratik bir yoldur.
Bir noktaya dikkat edin: CPT UI ile oluşturduğunuz bir türü eklentiyi devre dışı bırakırsanız içeriğiniz silinmez ama tür panelde görünmez olur, çünkü onu kaydeden mekanizma ortadan kalkar. İçeriğiniz veritabanında durmaya devam eder; eklentiyi tekrar açtığınızda ya da aynı türü kodla kaydettiğinizde geri gelir. Bu yüzden CPT UI'ı bir sitede kalıcı olarak kullanacaksanız devre dışı bırakmamaya, geçici olarak kullandıysanız "Get Code" ile kodunu çıkarıp eklentiden bağımsızlaştırmaya özen gösterin.
Kod mu Eklenti mi? Hangisini Secmeli?#
İki yöntem de sonuçta aynı register_post_type çağrısını yapar; fark, o çağrıyı sizin mi yoksa bir arayüzün mü ürettiğidir. Doğru seçim, teknik rahatlığınıza ve projenin ölçeğine bağlıdır. İkisini karşılaştıralım:
| Ölçüt | Kod (register_post_type) | Eklenti (CPT UI) |
|---|---|---|
| Teknik bilgi | PHP gerekir | Gerekmez |
| Kurulum hızı | Orta | Çok hızlı |
| Performans | En hafif | Ek eklenti yükü |
| Sürüm kontrolü | Git ile izlenebilir | Veritabanında saklanır |
| Taşınabilirlik | Eklenti dosyasıyla taşınır | Ayarları elle taşımak gerekir |
| Müşteriye uygunluk | Düşük | Yüksek |
| Bağımlılık | Yok | Eklentiye bağımlı |
Pratikte şu yaklaşım işe yarar: Geliştiriciyseniz ve site sizin kontrolünüzdeyse kodu tercih edin. Küçük bir eklenti dosyasına yazılmış CPT tanımı; sürüm kontrolüyle izlenebilir, sunucular arasında kolayca taşınabilir ve fazladan bir eklentinin yükünü getirmez. Bu, üretim siteleri için en temiz yoldur.
Buna karşılık kod yazmak istemiyorsanız ya da siteyi teknik olmayan bir müşteriye teslim edeceksiniz, CPT UI daha mantıklıdır. Müşteri kendi içerik türlerini görsel bir arayüzden yönetebilir, sizin sürekli araya girmenize gerek kalmaz. Deneyimli bir yaklaşım da ikisini birleştirmektir: fikri CPT UI ile hızlıca test edip, kesinleşince "Get Code" çıktısını kendi eklentinize gömerek eklenti bağımlılığından kurtulmak. Hangi yolu seçerseniz seçin, tanımı temaya değil eklentiye koymak altın kuraldır.
Tema Sablonuyla Gosterim#
CPT'nizi oluşturup içerik girdiniz; peki ziyaretçi bunları nasıl görecek? İşte burada tema devreye girer. WordPress, hangi içeriğin hangi şablon dosyasıyla gösterileceğini belirleyen bir şablon hiyerarşisi kullanır. Özel içerik türleri için bu hiyerarşi çok pratiktir: doğru adlandırılmış bir dosya oluşturduğunuz anda WordPress onu otomatik olarak devreye alır. Bu dosyaları oluştururken doğrudan ana temaya değil, güncellemelerde kaybolmaması için child theme'e koymalısınız; bu konu için WordPress tema seçimi rehberimizdeki alt tema bölümü yol gösterir.
İki temel şablon dosyası vardır. Tek bir projenin detay sayfası için single-{tur_adi}.php, tüm projeleri listeleyen arşiv sayfası için ise archive-{tur_adi}.php kullanılır. proje türümüz için bunlar single-proje.php ve archive-proje.php olur. Örneğin projeleri listeleyen sade bir arşiv şablonu şöyle görünebilir:
<?php get_header(); ?>
<main class="proje-arsiv">
<h1>Projelerimiz</h1>
<?php if ( have_posts() ) : ?>
<div class="proje-grid">
<?php while ( have_posts() ) : the_post(); ?>
<article class="proje-karti">
<a href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail() ) the_post_thumbnail( 'medium' ); ?>
<h2><?php the_title(); ?></h2>
<p><?php the_excerpt(); ?></p>
</a>
</article>
<?php endwhile; ?>
</div>
<?php else : ?>
<p>Henuz proje eklenmemis.</p>
<?php endif; ?>
</main>
<?php get_footer(); ?>
Eğer bu özel şablon dosyalarını oluşturmazsanız WordPress geri düşer (fallback yapar) ve türünüzü temanın genel archive.php ve single.php dosyalarıyla gösterir. Yani hiçbir şablon yazmasanız bile içeriğiniz görünür; sadece diğer içeriklerle aynı düzeni kullanır. Kendi şablonunuzu yazmak, o türe özel bir tasarım (örneğin projelerinizi ızgara düzeninde kartlar hâlinde göstermek) vermenizi sağlar.
Bir başka sık ihtiyaç da CPT içeriğini herhangi bir sayfada (örneğin ana sayfada "Son Projeler" bölümü) listelemektir. Bunun için WP_Query sınıfını kullanarak istediğiniz türü sorgulayabilirsiniz:
<?php
$projeler = new WP_Query( array(
'post_type' => 'proje',
'posts_per_page' => 4,
'orderby' => 'date',
'order' => 'DESC',
) );
if ( $projeler->have_posts() ) :
while ( $projeler->have_posts() ) : $projeler->the_post();
the_title( '<h3>', '</h3>' );
endwhile;
wp_reset_postdata(); // Onemli: ana sorguyu geri yukle
endif;
Buradaki wp_reset_postdata() çağrısını atlamayın; özel bir sorgudan sonra WordPress'in ana döngüsünü eski hâline döndürür ve sayfanın geri kalanının bozulmasını önler. Blok editörü kullanan modern temalarda ise aynı işi kod yazmadan "Sorgu Döngüsü" (Query Loop) bloğuyla yapabilir, bu bloğu ilgili içerik türüne yönlendirerek listeyi görsel olarak kurabilirsiniz.
Ozel Alanlar ve Taksonomilerle Guclendirmek#
Bir CPT'yi gerçekten güçlü kılan, ona eklediğiniz özel alanlar (custom fields) ve özel taksonomilerdir (taxonomies). Bir proje türü düşünün: başlık ve içeriğin yanında "Müşteri Adı", "Teslim Tarihi" ve "Proje URL'si" gibi yapısal verileri de tutmak istersiniz. Bunları içerik metnine gömmek yerine ayrı alanlar olarak saklamak, hem düzenli görünmelerini hem de bunlara göre filtreleme yapabilmenizi sağlar. Bu iş için Advanced Custom Fields (ACF) gibi eklentiler standart çözümdür; alanları görsel bir panelden tanımlar, şablonda the_field('musteri_adi') gibi basit çağrılarla ekrana basarsınız.
Taksonomiler ise CPT içeriğinizi gruplama biçimidir; tıpkı blog yazılarının kategoriler ve etiketlerle gruplanması gibi. Projeleriniz için "Proje Türü" (web, mobil, kurumsal kimlik) adında bir taksonomi tanımlayabilirsiniz. Bunu da yine init kancasında register_taxonomy ile yaparsınız:
add_action( 'init', function () {
register_taxonomy( 'proje_turu', 'proje', array(
'labels' => array( 'name' => 'Proje Turleri' ),
'public' => true,
'hierarchical' => true, // Kategori gibi (agac yapisi); etiket icin false
'show_in_rest' => true,
'rewrite' => array( 'slug' => 'proje-turu' ),
) );
} );
hierarchical => true bu taksonomiyi kategoriler gibi (iç içe geçebilen, ağaç yapılı) yapar; false verirseniz etiketler gibi düz bir yapı elde edersiniz. Böylece "web" türündeki tüm projeleri siteadi.com/proje-turu/web/ adresinde otomatik listeleyebilir, ziyaretçilere düzenli bir filtreleme sunabilirsiniz. Özel alanlar ve taksonomileri birleştirdiğinizde, WordPress'i basit bir yayın aracından ihtiyacınıza tam oturan bir katalog ya da yönetim sistemine dönüştürmüş olursunuz.
Sıkça Sorulan Sorular#
Custom Post Type oluşturmak sitemin hızını yavaşlatır mı?#
Hayır, doğru yapıldığında kayda değer bir performans etkisi olmaz. register_post_type çağrısı çok hafiftir; her sayfa yüklemesinde çalışsa bile milisaniyeler mertebesinde bir yük getirir. Asıl fark, türü nasıl gösterdiğinizden gelir: iyi yazılmış bir WP_Query sorgusu ve önbellekleme ile CPT tamamen sorunsuz çalışır. Performans endişeniz varsa yavaşlığı CPT'de değil, aşırı ağır bir sayfa oluşturucuda ya da önbelleksiz sorgularda aramanız daha doğru olur.
CPT tanımını temanın functions.php dosyasına koyabilir miyim?#
Teknik olarak koyabilirsiniz ama şiddetle önerilmez. İçerik türünüzün yapısı temaya değil, sitenizin verisine aittir. Kodu temanın functions.php dosyasına yazarsanız, temayı değiştirdiğiniz anda tür panelden kaybolur; içeriğiniz veritabanında durmaya devam eder ama artık ona erişemezsiniz. Doğru yol, tanımı küçük bir site-özel eklentisi içine koymaktır; böylece hangi temayı kullanırsanız kullanın içerik türünüz yerinde kalır.
CPT UI eklentisini silersem içeriğim kaybolur mu?#
Hayır, içeriğiniz silinmez. Tüm proje, ürün ya da referans kayıtlarınız WordPress'in wp_posts tablosunda durmaya devam eder. Silinen tek şey, o türü WordPress'e tanıtan kayıt mekanizmasıdır; bu yüzden eklentiyi kaldırınca tür panelde görünmez olur. Eklentiyi tekrar etkinleştirdiğinizde ya da aynı türü aynı makine adıyla kod yazarak yeniden kaydettiğinizde içeriğiniz olduğu gibi geri gelir. Bu yüzden bir türe geçici olarak CPT UI ile başladıysanız, kalıcı hâle getirmek için "Get Code" çıktısını bir eklentiye taşımak akıllıcadır.
Oluşturduğum CPT sayfaları neden 404 hatası veriyor?#
Bu çok yaygın bir durumdur ve çözümü basittir. WordPress, URL yönlendirme kurallarını bir kez oluşturup önbelleğe alır; yeni bir tür eklediğinizde bu kurallar henüz güncellenmediği için özel URL'ler 404 verir. Çözüm, panelde Ayarlar > Kalıcı Bağlantılar ekranına gidip hiçbir değişiklik yapmadan "Değişiklikleri Kaydet" butonuna basmaktır. Bu işlem yönlendirme kurallarını yeniler ve sorunu anında çözer. Kod yazarken bu adımı unutmamak, saatlerce süren gereksiz hata ayıklamadan sizi kurtarır.
CPT ile taksonomi arasındaki fark nedir?#
İkisi farklı işler görür ama birlikte çalışır. Custom Post Type, içeriğin kendisidir; her bir proje, ürün ya da etkinlik bir CPT kaydıdır. Taksonomi ise bu içerikleri gruplama yöntemidir; tıpkı blog yazılarının kategori ve etiketlerle gruplanması gibi. Örneğin "Proje" bir CPT iken, "Proje Türü" (web, mobil, kurumsal) bir taksonomidir. Yani CPT "ne" sorusunu, taksonomi ise "hangi grupta" sorusunu yanıtlar. Güçlü bir içerik yapısı için ikisini birlikte tasarlamak en iyi sonucu verir.
Kod bilmeden profesyonel bir portfolyo kurabilir miyim?#
Evet, kesinlikle. CPT UI ile içerik türünü, ACF gibi bir eklentiyle özel alanları oluşturup, blok temasının "Sorgu Döngüsü" bloğuyla bunları görsel olarak listeleyebilirsiniz; bu zincirin hiçbir halkasında kod yazmanız gerekmez. Elbette kod yazabilmek size daha ince kontrol ve daha hafif bir yapı sunar, ama kodsuz araçlar bugün o kadar olgunlaştı ki teknik olmayan bir kullanıcı bile düzgün çalışan, bakımı kolay bir portfolyo ya da katalog kurabilir. Önemli olan, kullandığınız eklentileri güvenilir kaynaklardan seçmek ve sayıyı gereğinden fazla şişirmemektir.
Kapanış#
Custom Post Type, WordPress'i basit bir blogdan gerçek bir içerik yönetim sistemine dönüştüren en önemli araçtır. Özetle: içeriğiniz Yazı ve Sayfa kalıplarına sığmadığında, tekrar eden ve kendine özgü alanları olan yapılar (portfolyo, hizmet, referans, ürün) için bir CPT oluşturun. Geliştiriciyseniz register_post_type fonksiyonunu küçük bir eklenti içinde kullanın; kod yazmak istemiyorsanız CPT UI gibi bir eklentiyle aynı işi görsel olarak yapın. Tanımı asla temaya gömmeyin, supports ve slug gibi ayarları ihtiyacınıza göre yapılandırın, gösterimi single- ve archive- şablonlarıyla özelleştirin ve özel alanlar ile taksonomilerle yapıyı güçlendirin.
Bütün bu esnekliğin arkasında hızlı ve kararlı bir barındırma olması gerekir; çünkü çok sayıda özel içerik türü ve sorgu, sunucunuzu düzgün yapılandırılmadığında zorlayabilir. WordPress'e göre optimize edilmiş, NVMe diskli bir WordPress hosting paketiyle başlayabilir, büyüyen projeler için farklı hosting seçeneklerini karşılaştırabilir ya da tam kontrol isteyen kurulumlar için sanal sunucu çözümlerimize göz atabilirsiniz. Kurulum, güncelleme ve özel geliştirme yükünü kendiniz taşımak istemiyorsanız, bu işleri uzmanlara devreden WordPress bakım hizmetimiz de her zaman yanınızda.