WordPress Özel Yazı Tiplerini Manuel Olarak Oluşturun

Yayınlanan: 2020-12-15

WordPress Özel Gönderi türleri hakkındaki ilk makalemizde, mükemmel eklenti Özel Gönderi Türü UI'sini kullanarak kendi özel gönderi türlerinizi nasıl kolayca oluşturabileceğinizi inceledik. Bu ikinci makalede, bunu manuel olarak (yani kodlayarak) nasıl yapabileceğinize bakacağız. Öyleyse, neden bir eklenti kullanarak özel gönderi türü oluşturmak bu kadar kolaysa, bunu uzun yoldan yapmak ister misiniz?

Özel işlevler eklemek için bir eklenti kullanmak son derece iyi çalışabilir (ve işlevselliği genişletmeye yardımcı olan geniş eklenti kitaplığı, WordPress'in bu kadar popüler olmasının nedenlerinden biridir). Ancak, bir eklenti desteklenmediğinde ve desteklenmediğinde sorunlar ortaya çıkabilir (eklentinin yazarı onu güncellemeye ve geliştirmeye devam etmemeyi seçtiğinden). Bu olursa, eklenti tarafından sağlanan işlevselliğin artık çalışmadığını görebilirsiniz; bu, web siteniz bir eklenti tarafından sağlanan belirli bir özellik etrafında oluşturulmuşsa ciddi bir sorun olabilir.

Bu nedenle, bir eklentiye güvenmek yerine doğrudan işlevsellik kodlayabiliyorsanız, düşünmek için iyi bir seçenek.

Bugün, bir eklenti kullanmadan kendi Özel Yazı Tipinizi nasıl oluşturabileceğiniz konusunda size yol göstereceğiz. Ayrıca, CPT (Özel Gönderi Türü) etiketlerini tanımlama gibi bazı temel yapılandırmaların yanı sıra öne çıkan görselleri etkinleştirme gibi şeyler ve daha fazlasını da göstereceğiz. Daha sonra özel bir sınıflandırma ekleyeceğiz ve son olarak Özel Yazı Tipi içeriğinizi web sitenizin ön ucunda nasıl görüntüleyebileceğinizi göreceğiz.

Özel Gönderi Türünü Oluşturun

Önceki eğitimimizi izlediyseniz ve hala CPT UI eklentisini kurduysanız, yeni CPT'nizi manuel olarak oluştururken herhangi bir karışıklık olmaması için lütfen bunu devre dışı bırakın.

Daha önce olduğu gibi, yeni özel gönderi türümüzün odak noktası olarak Tarifleri kullanacağız. Başlamak için yapmamız gereken ilk şey, functions.php dosyamıza doğru kod parçasını ekleyerek özel yazı tipini oluşturmak.

Temel kurulum

Şimdilik, WordPress'in sağladığı register_post_type işlevini kullanarak minimum argümanlarla yazı türlerimizi oluşturacağız.

 register_post_type( string $post_type, array|string $args = array() )

Bu fonksiyonun yapısı iki parametre gerektirir. Yalnızca küçük harfli alfasayısal karakterler, kısa çizgiler ve alt çizgiler ve ikinci bir isteğe bağlı parametre, ek bağımsız değişkenler için $args içermesi gereken gönderi türü anahtarı. Bu makalede bu argümanlardan yalnızca bazılarına odaklanacağız, ancak biraz daha denemek isterseniz, mevcut argümanların tam listesini ilgili WordPress belgelerinde bulabilirsiniz.

Bu makalenin amacı için aşağıdaki kodu kullanacağız.

 function recipes_post_type() { register_post_type( 'recipes', array( 'labels' => array( 'name' => __( 'Recipes' ), 'singular_name' => __( 'Recipe' ) ), 'public' => true, 'show_in_rest' => true, 'supports' => array('title', 'editor', 'thumbnail') ) ); } add_action( 'init', 'recipes_post_type' );

Takip ediyorsanız, favori metin düzenleyicinizi çalıştırın ve bu kodu functions.php dosyanıza ekleyin.

Bu kodda, yazı tipimiz için tekil ve çoğul isimleri tanımlamak için 'labels' dizisini, tarifler gönderileri için Gutenberg editörünü etkinleştirmek için show_in_rest argümanını ve public argümanı kullandığımızı göreceksiniz.

public argüman aslında üç farklı şey yapar. Yönetici özel gönderi menüsünü gösterir, web sitesi arama sonuçlarında özel gönderi menüsünü içerir ve ayrıca WordPress Yönetici Menüsü alanında özel gönderi menüsünü gösterir. Bu seçenekler sırasıyla show_in_nav_menus , exclude_from_search ve show_ui bağımsız değişkenleri kullanılarak ayrı ayrı değiştirilebilir. show_in_nav_menus ve show_ui varsayılan değeri, public değeri devralır, ancak exclude_from_search varsayılan değeri, public değerin tersidir.

Ayrıca, özel bir gönderinin hangi özellikleri destekleyeceğini tanımlayan supports argümanını da kullandık. Şimdilik sadece 'başlık', 'düzenleyici' ve 'küçük resim'i etkinleştireceğiz (gelecek makalelerde bazı başka seçenekler gösterilecektir).

Functions.php dosyamıza eklenen ve kaydedilen bu kod parçasıyla (böyle bir işe girişmeden önce her zaman web sitenizi yedekleyin!) şimdi WordPress Admin'de yepyeni bir Menü öğesi göreceksiniz (bu durumda 'Tarifler').

Daha sonra Görünüm > Menüler'e gidersek Tariflerin bir seçenek olarak eklendiğini onaylayabiliriz. Bu, işlerin olması gerektiği gibi çalıştığını doğrular.

Not: Menü alanına giderseniz ve 'Tarifler' menü öğesini göremiyorsanız, Ekran Seçeneklerinde kontrol edilmemiş olabilir. Bunu yapmak için sayfanın en üstüne gidin ve Ekran Seçenekleri çubuğunu açın ve yeni özel gönderi türünüzün (bu örnekteki Tarifler) işaretlendiğinden emin olun.

Özel Gönderi Türünüz için Taksonominizi Ekleyin

Benzer içeriği gruplamak için WordPress taksonomileri vardır. Bu noktada 'tarifler' özel yazılarımız var ama onları istediğimiz gibi kategorize etme imkanımız yok. Bu nedenle tariflerimiz için ayrı bir kategori oluşturmamız faydalı olacaktır. Örneğin tarifleri ait oldukları mutfak türüne göre gruplayalım.

Bunu başarmak için yeni bir 'mutfaklar' taksonomisi kaydetmemiz ve ardından onu 'yemek tarifleri' yazı tipine bağlamamız gerekiyor.

Taksonomiyi eklemek için WordPress'in sağladığı register_taxonomy() işlevini kullanırız (burada bir argüman listesine bakın).

 register_taxonomy( string $taxonomy, $object_type, $args )

Zorunlu argümanlar, sınıflandırma anahtarı olan $taxonomy ve bizim durumumuzda 'tarifler' olarak, sınıflandırmanın ilişkilendirilmesi gereken nesne türü veya nesne türleri dizisi olan $object_type . $arg parametresine, sınıflandırmamızın yönetici örneklerini etiketlemek için gerekli değerleri de ekleyeceğiz.

 function create_recipes_taxonomy() { register_taxonomy('cuisines','recipes',array( 'hierarchical' => false, 'labels' => array( 'name' => _x( 'Cuisines', 'taxonomy general name' ), 'singular_name' => _x( 'Cuisine', 'taxonomy singular name' ), 'menu_name' => __( 'Cuisines' ), 'all_items' => __( 'All Cuisines' ), 'edit_item' => __( 'Edit Cuisines' ), 'update_item' => __( 'Update Cuisines' ), 'add_new_item' => __( 'Add Cuisines' ), 'new_item_name' => __( 'New Cuisines' ), ), 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, )); } add_action( 'init', 'create_recipes_taxonomy', 0 );

show_admin_column boole değeri, taksonominin tarifler yönetici listesi tablosunda bir sütun olarak görünüp görünmeyeceğini tanımlar.

Şimdi, WordPress yöneticinize geri dönerseniz ve bunu yenilerseniz, Tarifler menüsünde 'Mutfaklar' sınıflandırmasını görmelisiniz.

Ayrıca Tarifler tablosunda bir 'Mutfaklar' sütunu görmelisiniz:

Özel Yazı Tipi İçeriğinizi Ön Uçta Görüntüleme

Bu noktada, oluşturduğunuz özel taksonomilerin yanı sıra özel gönderilerinizi de menünüze dahil edebilmelisiniz. Bunu göstermek için Mutfak Taksonomisi menümüze iki adet 'Akdeniz' ve 'Meksika' mutfağı ekledik. Bunlar daha sonra WordPress Menümüzde Menü seçenekleri olarak görünür ve aşağıda gösterilene benzer bir Tarifler menüsü oluşturmamıza olanak tanır.

Bir Tarif gönderisi oluşturduysanız ve bunu bir Mutfak kategorisiyle ilişkilendirdiyseniz, artık menüden ilgili mutfağı seçtiğinizde bunların göründüğünü görmelisiniz.

Not: Ön uçta bir tarif gönderisini görüntülemeye çalışırsanız “404 bulunamadı” mesajı alabilirsiniz. Bu, Permalink önbelleğinin temizlenmesi gerektiğinden olabilir. Bunu yapmak kolaydır. Ayarlar > Kalıcı Bağlantılar'a gidin ve yeniden kaydedin.

Şimdi tüm tariflerimizin bir arşivini görüntülemek için özel kod kullanarak 'Tüm Tarifler' için başka bir menü öğesi oluşturacağız.

Yine de devam etmeden önce, özel gönderiler arşiv argümanımızın doğru olarak ayarlandığından emin olmalıyız. Tarif türünü kaydettiğiniz ve argümanlar dizisine 'has_archive' => true, eklediğiniz functions.php içindeki kodunuza geri dönün.

 function recipes_post_type() { register_post_type( 'recipes', array( 'labels' => array( 'name' => __( 'Recipes' ), 'singular_name' => __( 'Recipe' ) ), 'public' => true, 'show_in_rest' => true, 'supports' => array('title', 'editor', 'thumbnail'), 'has_archive' => true, ) ); } add_action( 'init', 'recipes_post_type' );

Bundan sonra, 404 hatası almadığınızdan emin olmak için (daha önce bahsettiğimiz gibi) Ayarlar > Kalıcı Bağlantılar'a gidin ve yeniden kaydedin.

Şimdi menü oluşturma sayfasında, arşivler sayfası için özel bağlantıyı ekleyin. Bağlantı metni “Tüm Tarifler” olabilir.

Kalıcı bağlantılarınız “Düz” olarak ayarlanmışsa URL “/?post_type=recipes” ve kalıcı bağlantılar “Posta adı” olarak ayarlanmışsa '/recipes/' olmalıdır.

Menü öğesini ekleyin ve web sitenize gidin ve bağlantısını tıklayın. Artık tüm tarif gönderilerini bir arşiv görünümünde görmelisiniz.

Daha fazla okuma

  • Bir Eklenti Kullanarak WordPress Özel Gönderi Türleri Oluşturun
  • WordPress Özel Gönderi Türleri – Daha İleriye Gitmek
  • Kendi Eklentinizi Kullanarak WordPress Özel Gönderi Türleri Oluşturun!

Çözüm

Bu makalede incelediğimiz özel gönderi türlerine yaklaşma şekli, ilk başta kafa karıştırıcı görünebilir (özellikle bir eklenti kullanarak özel gönderi türleri oluşturma kolaylığı ile karşılaştırıldığında). Bununla birlikte, sebat etmeye istekliyseniz, kendi özel gönderi türlerinizi kodlamanın avantajları vardır, yani eklentinin çalışmayı bırakması veya desteklenmemesi durumunda bir eklentiye bağımlı değilsiniz.