WordPress’ta özel makale türü (custom article type) nedir?
WordPress, varsayılan olarak “Makale” (Article) ve “Sayfa” (Page) olmak üzere iki içerik türü sunar; ancak karmaşık web siteleri oluşturulurken bu genellikle yetersiz kalır. Bu durumda, “Özel Gönderi Türü” (Custom Post Type) kullanılır. CPTWordPress’in temel özelliklerinden biri olan bu özellik, geliştiricilerin bağımsız veri yapılarına ve arka uç yönetim arayüzlerine sahip yeni içerik türleri oluşturmalarına olanak tanır. Bunu, belirli türdeki bilgileri yönetmek için kullanılan bir “içerik şablonu” olarak düşünebilirsiniz.
Örneğin, bir film inceleme sitesi haberler yazmak için varsayılan “Makale” türünü kullanabilirken, aynı zamanda film girişlerini özel olarak yönetmek için “Film” adında özel bir makale türü oluşturabilir. Her film girişi, yönetmen, başrol oyuncuları, puanlar gibi özel alanları içerebilir. Bir e-ticaret sitesi “Ürün” türü oluşturabilir; bir okul sitesi ise “Ders” veya “Öğretmen” türü oluşturabilir. Böylece veriler daha düzenli ve kolayca yönetilebilir. CPTFarklı türdeki içerikler net bir şekilde ayrılarak veri yönetimi daha verimli hale getirilmiştir; aynı zamanda sonraki şablon özelleştirmeleri ve işlev genişletmeleri için sağlam bir temel oluşturulmuştur.
Nasıl özel makale türleri oluşturulur?
WordPress’ta özel makale türleri oluşturmanın iki temel yolu vardır: Kod kullanarak kayıt yapmak ve eklentiler kullanmak. Geliştiriciler için kod kullanarak kayıt yapma yöntemi çok önemlidir; çünkü en yüksek esnekliği ve kontrolü sağlar ve temalarda veya özel eklentilerde sürüm yönetimini kolaylaştırır.
Tavsiye edilen okuma WordPress Özel Makale Türlerini Kapsamlı Bir Şekilde Öğrenin: Oluşturmadan İleri Düzey Uygulama Pratiklerine。
Kod aracılığıyla özel makale türleri kaydedin.
En standart ve en tavsiye edilen yöntem, konuyla ilgili içeriği belirli bir temaya göre düzenlemektir. functions.php Bir dosyada veya bağımsız bir işlevsel eklentide kullanılır. register_post_type Bu fonksiyon, iki parametre alır: Özelleştirilmiş makale türünün tanımlayıcısı (slug) ve tüm parametreleri içeren bir dizi.
Aşağıda, “Film” adında özel bir makale türü oluşturmak için temel bir örnek bulunmaktadır:
function create_movie_post_type() {
$labels = array(
'name' => '电影',
'singular_name' => '电影',
'menu_name' => '电影管理',
'add_new_item' => '添加新电影',
'edit_item' => '编辑电影',
'view_item' => '查看电影',
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'movie' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 5,
'menu_icon' => 'dashicons-video-alt',
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
);
register_post_type( 'movie', $args );
}
add_action( 'init', 'create_movie_post_type' ); Bu kod, add_action Kancalar, WordPress başlatıldığında çalıştırılır. create_movie_post_type Fonksiyon. Fonksiyonun içinde gösterim etiketleri tanımlanmıştır. $labels ve temel parametreler $argsÖnemli parametreler şunları içerir:public Arka planda ve ön planda görüntülenip görüntülenmeyeceğini kontrol eder.rewrite URL yeniden yazma kurallarını tanımlayın; burada tek bir film için verilen bağlantı şu şekilde olacak: yoursite.com/movie/some-movie;has_archive Karar vermek gerekiyor: Arşiv sayfası olup olmayacağına dair… (Whether an archive page should be created or not…) yoursite.com/movie/);supports Dizi, bu içerik türünün desteklediği özellikleri tanımlar; örneğin başlık, editör, özel görseller vb.
Eklentiler kullanarak özel makale türleri oluşturun.
Kodlara aşina olmayan kullanıcılar için eklentiler, hızlı bir şekilde başlamak için mükemmel bir seçenektir. Custom Post Type UI ve Toolset Types, oldukça popüler iki eklentidir. Bu eklentiler, seçenekleri işaretleyerek ve formları doldurarak işlemleri tanımlamanıza olanak tanıyan, kullanımı kolay arayüzler sunar. CPT Çeşitli özellikleri vardır; örneğin etiketler, erişilebilirlik durumu, desteklenen işlevler vb.
Eklenti yöntemiyle oluşturma basit ve hızlıdır; ancak genellikle ek veritabanı sorgularına neden olur ve yapılandırması eklentinin kendisine bağlıdır. Web sitesini başka bir sunucuya taşıdığınızda veya önemli güncellemeler yaptığınızda, özelleştirilmiş makale türlerinin ayarlarının korunmasını sağlamak için ek adımlar atmanız gerekebilir. Bu nedenle, üretim ortamları veya uzun süreli bakıma ihtiyaç duyan projeler için kod tabanlı bir yaklaşım genellikle daha iyi bir seçenektir.
Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Sıfırdan Yüksek Performanslı Özel Temalar Oluşturmak。
Özel makale türlerine özel alanlar ekleyin.
Özelleştirilmiş makale türleri aslında sadece bir yapısal çerçeve sağlar; gerçekten benzersiz bilgileri (örneğin bir filmin “vizyon tarihi” veya “yönetmeni”) saklamak için özel alanlar (Custom Fields) veya daha gelişmiş özelleştirilebilir meta kutuları (Meta Boxes) kullanmak gerekir. WordPress, yerleşik bir “Özel Alanlar” paneli sunar; ancak bu panelin arayüzü basit ve işlevleri sınırlıdır, bu yüzden içerik editörleri için uygun değildir.
Gelişmiş özel alan eklentisini kullanın.
Advanced Custom Fields (ACC) eklentisi, özel alanları (custom fields) yönetmek için endüstri standardıdır. Grafiksel bir arayüz aracılığıyla, farklı makale türleri için özel alanlar oluşturmanıza olanak tanır (kendi makaleleriniz de dahil). CPTÇeşitli türde alan grupları oluşturun, örneğin metin, resim, seçim kutuları, ilişkilendirme bilgileri vb.
Örneğin, “film” için…” CPT “Yönetmen”, “Başrol Oyuncusu” ve “Vizyon Yılı” içeren bir alan grubu oluşturun. ACF eklentisini yükleyip etkinleştirdikten sonra, ayarlar sayfasına gidin ve yeni bir alan grubu oluşturun. Bu alan grubunun konum kurallarını “Makale Türü = Film” olarak ayarlayın. Daha sonra “Yönetmen” (metin alanı), “Başrol Oyuncusu” (metin alanı) ve “Vizyon Yılı” (sayı alanı) gibi alanları tek tek ekleyin. Değişiklikleri kaydettikten sonra, film içeriklerini arka planda düzenlerken bu kullanışlı giriş kutularını göreceksiniz.
Kod kullanarak özel bir meta kutusu oluşturun.
Eğer tamamen kod aracılığıyla kontrol etmek istiyorsanız, bunun için gerekli yapıları oluşturabilirsiniz. CPT Özel meta kutuları geliştirin. Bu, WordPress’in meta kutu API’sini ve kaydetme fonksiyonlarını kullanmayı içerir. Kod miktarı biraz fazla olsa da, tamamen özelleştirme özgürlüğü sunar.
Aşağıda, “Film” için bir “Yönetmen” alanı nasıl eklenir gösteren basitleştirilmiş bir örnek bulunmaktadır:
// 1. 添加元框
function add_movie_director_meta_box() {
add_meta_box(
'movie_director_meta_box', // 元框ID
'导演信息', // 元框标题
'render_movie_director_meta_box', // 回调函数,用于输出HTML
'movie', // 目标文章类型
'side', // 位置
'default' // 优先级
);
}
add_action( 'add_meta_boxes', 'add_movie_director_meta_box' );
// 2. 渲染元框内容
function render_movie_director_meta_box( $post ) {
// 获取已保存的值
$director = get_post_meta( $post->ID, '_movie_director', true );
// 添加安全字段
wp_nonce_field( 'movie_director_nonce_action', 'movie_director_nonce' );
// 输出HTML
echo '<label for="movie_director">导演姓名:</label>';
echo '<input type="text" id="movie_director" name="movie_director" value="' . esc_attr( $director ) . '" style="width:100%;" />';
}
// 3. 保存元框数据
function save_movie_director_meta_data( $post_id ) {
// 检查nonce、权限、自动保存等
if ( ! isset( $_POST['movie_director_nonce'] ) || ! wp_verify_nonce( $_POST['movie_director_nonce'], 'movie_director_nonce_action' ) ) {
return;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
// 保存数据
if ( isset( $_POST['movie_director'] ) ) {
update_post_meta( $post_id, '_movie_director', sanitize_text_field( $_POST['movie_director'] ) );
}
}
add_action( 'save_post', 'save_movie_director_meta_data' ); Bu kod, kenar çubuğunda yer alan ve yönetmen adının girileceği bir alan içeren bir metin kutusu oluşturur. Verilerin kaydedilmesi sırasında, WordPress’in standart güvenlik kontrol süreçleri kullanılmaktadır; bunlar arasında… nonce Doğrulama, yetki kontrolü ve otomatik kaydetme sırasında tekrarlanan işlemlerin önlenmesi. Kaydedilen veriler… update_post_meta Fonksiyonlar saklanır. wp_postmeta Tabloda.
Tavsiye edilen okuma WooCommerce Eklentisi Kullanım Kılavuzu: Kurulum, Ayarlama ve Mağaza İşletmeciliğine Kadar Tam Rehber。
Özel makale türü için şablon dosyası oluşturun.
Oluşturuldu. CPT İçeriği doldurduktan sonra, bunun ön uçta (frontend) nasıl gösterileceğine dair bir şablon sağlamanız gerekmektedir. WordPress, şablon hiyerarşisine göre çalışır ve içeriğinizi göstermek için uygun şablon dosyasını otomatik olarak bulur.
Tek Makale Türü Şablonu
Kullanıcılar tek bir film içeriğine eriştiğinde (örneğin…) yoursite.com/movie/inceptionWordPress, şablon dosyalarını aşağıdaki sırayla arar:
1. single-movie.php (En ayrıntılı haliyle)
2. single.php
3. singular.php
4. index.php
Bu nedenle, en iyi uygulama tema dizininizde “” adında bir dosya oluşturmaktır. single-movie.php Bu dosyada, filmin gösterim şeklini tamamen özelleştirebilir ve daha önce oluşturduğunuz özel alanları kullanabilirsiniz.
<?php get_header(); ?>
<article id="post-<?php the_ID(); ?>" no numeric noise key 1008>
<header class="entry-header">
<h1 class="entry-title"><?php the_title(); ?></h1>
<div class="entry-meta">
<span>导演:</span>
</div>
</header>
<div class="entry-content">
<!-- 显示其他自定义字段,如主演、上映年份 -->
<p><strong>Başrol Oyuncuları:</strong><?php the_field( 'lead_actor' ); ?></p>
<p><strong>Vizyon Yılı:</strong><?php the_field( 'release_year' ); ?></p>
</div>
</article>
<?php get_footer(); ?> Eğer ACF eklentisi kullanılıyorsa, bu eklentinin sunduğu özelliklerden yararlanılabilir. the_field() Fonksiyon, alan değerlerini kolayca çıktı olarak verir. Eğer alanlar özel kod kullanılarak kaydedilmişse, bu özel kod kullanılır. get_post_meta() İşlev.
Arşiv Sayfası Şablonu
Kullanıcılar film listesi sayfasına girdiğinde (örneğin…) yoursite.com/movie/WordPress, belirli bir şey aradığında (örneğin bir dosya, bir ayar veya bir bilgi) şunları yapar:
1. archive-movie.php
2. archive.php
3. index.php
Oluştur archive-movie.php Bu dosyada, tüm filmleri listelemek için WordPress döngülerini kullanabilir, sorguları özelleştirebilir veya sayfalama özelliğinden yararlanabilirsiniz.
<?php get_header(); ?>
<h1>Film Kütüphanesi</h1>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<article>
<h2><a href="/tr/</?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_post_thumbnail( 'medium' ); ?>
<p>导演:</p>
<?php the_excerpt(); ?>
</article>
<?php endwhile; the_posts_navigation(); else : ?>
<p>Şu an için hiçbir film mevcut değil.</p> Özetle.
WordPress’ta özel makale türlerini öğrenmek, basit bir blog yapısından kurtulup işlevsel ve yapısal olarak sağlam modern web siteleri oluşturmanın önemli bir adımıdır. register_post_type Fonksiyonların kod olarak kaydedilmesiyle başlayan süreç, ACF eklentisi veya özel meta kutuları aracılığıyla özel alanların eklenmesiyle devam eder ve ardından şablonların seviyelerine göre özel yapıların oluşturulmasıyla tamamlanır. single-{cpt}.php 和 archive-{cpt}.php Şablon dosyaları, tüm süreci tamamlar ve böylece bütüncül bir yapı oluşturur. CPT Geliştirme iş akışı oluşturma.
Gerçek uygulamalar sayesinde, “film” içerik türünü oluşturduk; bu içerik türü bağımsız bir arka plan menüsüne, özel veri alanlarına ve özelleştirilmiş bir ön uç görünümüne sahip. Bu metodoloji, “ürün”, “portföy”, “etkinlik” gibi herhangi bir içerik ihtiyacına sorunsuz bir şekilde uygulanabilir. Bu bilgileri anlamak ve uygulamak, bir WordPress geliştiricisi olarak yeteneklerinizi büyük ölçüde artıracak ve kullanıcılara gerçekten özelleştirilmiş dijital deneyimler sunmanızı sağlayacaktır.
Sıkça Sorulan Sorular.
Özel makale türleri ile özel kategoriler arasındaki fark nedir?
Özel makale türleri, “film” veya “ürün” gibi yeni içerik varlıklarını tanımlamak için kullanılır. Özel sınıflandırma sistemleri ise (etiketler, kategori dizinlerinin genişletilmiş halleri gibi) içeriği sınıflandırmak ve düzenlemek amacıyla kullanılır. Bir özel makale türü, birden fazla özel sınıflandırma sistemiyle ilişkilendirilebilir. Örneğin, “film” makale türü, “komedi”, “gerilim” gibi çeşitli özel sınıflandırma sistemleriyle ilişkilendirilebilir. CPT “Tür” (eylem, komedi) ve “Bölge” (Çince, Hollywood) olmak üzere iki özel sınıflandırma yöntemi birbirine bağlanabilir.
CPT’yi (Custom Post Type) temanın `functions.php` dosyasında mı yoksa ayrı bir eklentide mi kaydetmeliyim?
Bu, projenin karmaşıklığına ve taşınabilirlik gereksinimlerine bağlıdır. Belirli bir konuyla sıkı sıkıya bağlantılı ve yeniden kullanılamayan durumlarda… CPTBu, konunun içine yerleştirilebilir. functions.php Evet. Ancak en iyi uygulama, tüm özel makale türlerinin ve kategorilerinin kayıt kodlarını barındırmak için ayrı bir eklenti oluşturmaktır. Bu şekilde, temayı değiştirdiğinizde bile bu içerik türleri ve verileri korunur ve web sitesinin “işlevleri” ile “görünümü” daha iyi bir şekilde ayrılır.
Mevcut özel makale türlerinin sabit bağlantı yapısını nasıl değiştirirsiniz?
Kayıt sırasında bunu yapabilirsiniz. CPT Zaman içinde… rewrite Parametre ayarları, kayıt olduktan sonra da kullanılabilir. register_post_type_args Filtreleri değiştirmeniz gerekmektedir. Değişiklikleri yaptıktan sonra, WordPress arayüzündeki “Ayarlar” -> “Sabit Bağlantılar” sayfasına gidin ve “Değişiklikleri Kaydet” butonuna basarak yeniden yazma kurallarını güncelleyin. Aksi takdirde, yeni bağlantı yapısı etkili olmayabilir.
Neden özel olarak oluşturduğum makale türünü ön tarafta göremiyorum?
Bu genellikle yanlış ayarlanmış kayıt parametreleri nedeniyle olur. Lütfen öncelikle kayıt fonksiyonunu kontrol edin. $args array içindeki 'public' 和 'publicly_queryable' Tüm parametreler ayarlandı mı? trueİkincisi, emin olun… 'show_ui' 和 'show_in_nav_menus' Aynı zamanda… trueSon olarak, şablon dosyasını kontrol edin.single-{cpt}.php 或 archive-{cpt}.phpAktivite temasının kök dizininde doğru şekilde oluşturulup oluşturulmadığı ve bulunup bulunmadığı kontrol edilmelidir.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- WooCommerce’u Derinlemesine Analiz Etmek: Sıfırdan Başlayarak Güçlü Bir WordPress E-Ticaret Sitesi Oluşturmak
- WordPress Performans Optimizasyonu Kılavuzu: Çekirdekten Ön Yüze Kadar Kapsamlı Hız Artırma Yöntemleri
- WordPress web sitenize SSL sertifikası nasıl yüklersiniz ve yapılandırırsınız?
- WooCommerce Genel Site Önbellekleme Optimizasyon Kılavuzu: WordPress E-ticaret Sitelerinin Hızını ve Dönüşüm Oranlarını Artırma
- 2026 WooCommerce Kurulumu ve Tema Seçimi Kılavuzu