WordPress'te özel gönderi türleri ve özel alanlar nasıl uygulanır?

Yayınlanan: 2014-06-10

WordPress artık sadece blog yazmakla sınırlı değil - verdiğiniz her türlü içeriği görüntüleme ve biçimlendirme yeteneğine sahip tam özellikli bir içerik yönetim sistemidir. Şimdi WordPress'i genişletmenin iki harika yolundan bahsedelim: özel gönderi türleri ve özel alanlar.

Özel Gönderi Türleri

Görünüşe göre test sitemiz, Pazartesi Sabahı Kupa (e-posta entegrasyonu blog yazımızda kullandık), başa çıkması gereken yeni bir sorun var. Blogumuz o kadar büyüdü ki, tam zamanlı bir kahve inceleme personeli tuttuk. Kahve yapmak ve inceleme yazmakla meşguller. Bu incelemeleri bloga gönderiyorlar, ancak okuyucularımız bize tüm bu incelemelerin “gerçek” blog içeriğimizin önüne geçtiğini söyledi. Kahve incelemelerimiz için ayrı bir yer yapmamız gerekiyor, ancak normal WordPress sayfaları bunu kesmeyecek. Gözden geçirenler ayrıca, kahvenin geldiği ülke ve tadım notları gibi bilgileri web sitesinde kolayca saklayabilecekleri bir yere sahip olmayı çok istediklerini öne sürüyorlar. Bu, özel bir gönderi türü için mükemmel bir kullanım gibi görünüyor, sitemizde yeni içerik bölümleri oluşturmamıza izin veren bir WordPress özelliği.

Özel gönderi türleri inanılmaz derecede esnektir ve her tür içerik için uygulanabilir: alıntılar, videolar ve farklı renk tonları, özel bir gönderi türünün ne olabileceğinin örnekleridir.

Web sitemizin /coffees/ alt dizinine kahve incelemeleriyle dolu yeni bir bölüm eklemek isteyeceğiz. Bu biraz kod karmaşası gerektirecek, ancak nispeten kolay bir süreç olmalı.

Not: Bunu yapmak için, genellikle FTP/SFTP/SSH erişimi gerektiren WordPress kurulum dizininizdeki .php dosyalarını düzenleyebilmeniz gerekir. Devam etmeden önce buna sahip olduğunuzdan emin olun.

Her WordPress teması, şu konumda bulunan bir functions.php dosyasını kullanabilir:
/wp-content/themes/your_current_theme/functions.php
Bu dosya genellikle temaya özel site değişikliklerinin yanı sıra yapmak üzere olduğumuz gibi daha küçük özel site değişiklikleri için kullanılır.

Not: functions.php dosyasına temaya özel olduğu anlamına gelen kod ekleyeceğiz. Bunu function.php dosyanıza eklerseniz ve ardından WordPress kurulumunuzdaki temayı değiştirirseniz, özel gönderi türünü web sitenizden kaldırırsınız. Özel Gönderi Türü Kullanıcı Arayüzü gibi bir eklenti kullanarak özel içerik türlerini koruyabilirsiniz.

1. Functions.php dosyanızı açın ve dosyanın altına aşağıdaki kodu ekleyin:

function create_new_post_type() {
$labels = array(
'name' 			 => __('Coffee Reviews'),
'singular_name'  => __('Coffee Review'),
);
$args = array(
'labels'      	 => $labels,
'public' 	  	 => true,
'has_archive' 	 => true,
'menu_position'  => 5,
'description'    => 'Reviews And Types of Coffee',
'rewrite'     	 =>
array('slug' => 'reviews'),
'supports'    	 =>
array( 'title',
'comments', 'editor',
'thumbnail', 'custom-fields', 'revisions'),
);

register_post_type('Reviews', $args);
}
add_action('init', 'create_new_post_type');

Özellikle ne yaptığına dair bir fikrimiz olmadan kodu kullanmayı sevmediğimiz için, hadi bu kodun ne yaptığını inceleyelim.

Not: $labels ve $args register_post_type() işlevinin dışında tanımlandığını fark etmiş olabilirsiniz, ancak bunlar daha sonra bu işleve argüman olarak iletilmiş olsalar bile. Bu yöntem, düzenlemeye ve okunabilirliğe yardımcı olur, ancak her iki diziyi de tek bir bağımsız değişkende toplayabilirsiniz . Sadece anlamak daha zor olurdu.

$args dizisi, yeni içerik türümüzü tanımlamamız için ihtiyaç duyduğumuz tüm özellikleri içerir. İşte bunların yaptıkları:

  • 'labels' – İçerik türümüz olarak adlandıracağımız şeyi tanımlayan bir dizi. Kullanabileceğiniz çok daha fazla etiket vardır ve tam bir liste buradaki belgelerde mevcuttur.
  • 'public' – Gönderinin Yönetici panelinin dışında görüntülenip görüntülenmeyeceğini tanımlayan bir boole.
  • 'has_archive' – Doğruysa, bu boole, tıpkı standart WordPress gönderileri gibi bu tür özel gönderilerin bir arşivini oluşturur.
  • 'menu_position' – Bu tam sayı, özel gönderi gezinme düğmenizin nereye gideceğini değiştirir. 5 sayısı, doğrudan gönderiler sekmesinin altına gideceğini gösterir. Sayısal kodların tam listesi için aynı belgelere bakın.
  • 'description' – Gönderi türünü tanımlar.
  • 'rewrite' - Bu, bilgi parçasını "incelemeler" olarak değiştirir ve bu da kullanılabilir bir kalıcı bağlantı yapısı oluşturmaya yardımcı olur. (Boolean da olabilir; daha fazla bilgi için belgelere bakın.)
  • 'supports' – Hangi yerel WordPress düzenleme/gönderme özelliklerinin etkinleştirildiğini tanımlayan bir dizi. Bu oldukça esnek ve çok daha fazla seçenek var, ancak bu gönderi için en azından custom-fields ve editor ihtiyacımız olacak.

Daha sonra register_post_type() işlevi çağrılır ve bu, az önce tanımladığımız argüman dizisini kullanarak İncelemeler adında yeni bir yazı tipi oluşturur.

Son olarak, işlemi tamamlamak için son bir işlev çağırmalıyız. register_post_type() her zaman 'init' eylemiyle başlatılmalıdır. Çağırarak yeni fonksiyonumuzu init'e bağlayabiliriz.

add_action(‘init’, ‘create_new_post_type’);

Mükemmel! Şimdi WordPress yönetici panelimize giriş yaparsak, solda “İncelemeler” adında yeni bir sekme görmeliyiz.

kahve_incelemeleri

2. Artık özel bir gönderi türü olarak ayarlanmış Yorumlara sahip olduğumuza göre, okuyucularımızın gönderilerimizi kolayca bulabilmesi için kalıcı bağlantı yapısını güncellememiz gerekiyor. Ayrıca, URL'lerimizin okunmasını çok daha kolay ve SEO dostu hale getirir.

3. Ayarlar -> Kalıcı Bağlantılar menü çubuğunun altında, kalıcı bağlantı yapıları için bir dizi ortak seçenek bulacaksınız. Özel ayarı /%category%/%postname%/ alanıyla eşleşecek şekilde değiştireceğiz.

Bu, WordPress'in gönderilerimizin kategorisine ve başlığına uygun URL'ler oluşturacağı anlamına gelir.

Not: Bu, site genelinde bir değişikliktir ve diğer kategorilerdeki gönderilerinizi etkileyecektir.

özel_kalıcı bağlantı

Şimdi, eleştirmenlerimizin Sumatra Ketiara kahvesi için yazdığı bir gönderinin URL'sine bir göz atalım:

sumatra_permalink

Harika! Şu URL'ye bakın. Kendi dizinlerine ayrılmış incelemelerimiz var ve URL düz İngilizce olarak yazılmış. Artık okuyucularımız bir bağlantıya tıkladıklarında tam olarak ne alacaklarını biliyorlar.

Özel Alanlar

Yorumcularımız yeni İnceleme bölümünü sevse de, arka uçta, menşe ülke ve tatma notları gibi her kahve hakkında yazdıkları ortak bilgileri girmelerine olanak tanıyan bir şey eklememizi istediler. Bu, neyse ki uygulanması çok kolay olan özel alanların mükemmel kullanımı gibi görünüyor.

1. Bağımsız bir inceleme düzenleyicide, düzenleyicinin sağ üst köşesinde ekran seçenekleri düğmesini göreceksiniz:

screen_options

bu, tıklandığında buna genişler:

screen_options_dropdown

2. Özel Alanlar kutusunu işaretleyin.

Editörün altında, az önce etkinleştirdiğimiz Özel Alanlar kutusunu göreceksiniz.

custom_fields_blank

3. Her iki kutuya da herhangi bir şey yazabilirsiniz; Ad alanına yazdığınız ve eklediğiniz her şey daha sonra kullanılmak üzere kaydedilecektir. Burada kahvemizin geldiği bölge ve ülkeyi listeliyoruz.

custom_fields_region

Özel alanlar, bir kategori için önemli olan verileri ayrı bir yerde her gönderide standartlaştırmayı inanılmaz derecede kolaylaştırır. Şimdi sadece bu bilgiyi incelememizde görüntülemek için almamız gerekiyor.

4. Bu kod etiketini tema belgelerimizden birine ekleyeceğiz:

<br /><?php the_meta(); ?><br />

Not: Bu örnekte, bu etiketi content.php dosyamıza koyacağız, ancak değer tablonuzun gitmesi için uygun bir yer bulmanız gerekecek. Ayrıca bu etiketi, burada hakkında daha fazla bilgi bulabileceğiniz temanızın geri kalanıyla eşleşecek şekilde biçimlendirmelisiniz.

Blogumuza geri döndüğümüzde, etiketimizin incelememize bir liste eklediğini görebiliriz.

custom_field_example

Havalı! Şimdi hem okuyucularımız hem de eleştirmenlerimiz mutlu. Kahve hakkındaki yorumları kaydetmemize izin veren özel bir gönderi türü oluşturabildik ve yorumcularımıza her farklı inceleme için tüm önemli bilgilerini depolayabilecekleri bir yer verebildik.