WordPress Özel Gönderi Türleri – Daha İleriye Gitmek

Yayınlanan: 2020-12-16

WordPress Özel Gönderi türleri serimizde, şimdiye kadar bir Eklenti kullanarak Özel Gönderi Türü oluşturmaya ve kendi özel kod parçacıklarınızı yazarak manuel olarak Özel Gönderi Türü oluşturmaya baktık. Ayrıca, WordPress Yöneticinizden bunları daha kolay işleyebilmeniz için gönderi türlerinize bazı temel yapılandırmaları nasıl uygulayabileceğinizi de inceledik. Bu makalelere göz atmadıysanız, bir göz attığınızdan emin olun!

Bu makalede, web sitemizdeki işlevselliklerini ve kullanılabilirliklerini genişletmek için önceden oluşturulmuş Özel Gönderi Türlerimizi geliştirerek işleri bir adım öteye taşıyacağız. Devam etmek istiyorsanız, 'Manuel olarak WordPress Özel Gönderi Türleri Oluşturun' makalemizde oluşturduğumuz Özel Gönderi Türlerini oluşturmanız gerekir, bu nedenle aşağıdaki bilgilerin anlamlı olması için önce bunu yaptığınızdan emin olun.

Başlayalım!

Özel Gönderi Türlerini Her Yerde Görüntüleme

Göreceğiniz gibi, daha önce web sitemizde Tarifleri görüntülemek için bir Özel Yazı Tipi oluşturduk. Bu, Özel Gönderi Türlerinin web sitemizin işlevselliğini genişletmenin inanılmaz derecede yararlı bir yolu olduğu bir duruma mükemmel bir örnektir.

Örneğimizde, Tarifler yazılarımızı ana web sitemizin menüsüne ekleyerek görüntüleyebildik. Ayrıca, Tarifle ilgili tüm gönderilerimizi listeleyen bir arşiv görünümü oluşturduk. Bunlar, yeni Özel Gönderi Türlerimizi görüntülemek için harika seçeneklerdir, ancak bu içeriği web sitemizde başka bir yerde görüntülemek istediğimizde ne olur?

Özel Gönderi Türlerini Görüntülemek için WP_Query İşlevini Kullanma

Yeni Tarif gönderilerimizi web sitemizde seçtiğimiz konumlarda görüntülemek için WP_Query işlevini kullanacağız. Argümanlarında, bu örnekte hangi gönderi türlerini sorgulamak istediğimizi tanımladığı için kullanılacak olan post_types bulabiliriz. Bununla birlikte, yayınlanmış statüsüne sahip Tarifler gönderilerini göstermek ve bunları azalan tarihe göre sıralamak istediğimiz için publish ve orderby parametrelerini kullanacağız.

Tarif yazılarımızın bir listesini web sitemizin altbilgisinde telif hakkı bilgilerinin üzerinde görüntülemek istediğimizi düşünelim. Bunu yapmak için, bizim durumumuzda, <footer> öğesinin başlangıcının altındaki singular.php dosyasına eklenmesi gereken bir kod parçacığı kullanacağız.

 <?php $args = array( 'post_type' => 'recipes', 'post_status' => 'publish', 'orderby' => array( 'date' => 'DESC' ), ); $recipes = new WP_Query( $args ); if( $recipes->have_posts() ) { ?> <div class="recent-recipes"> <?php while( $recipes->have_posts() ) : $recipes->the_post(); ?> <div class="recipe"> <a href=""><?php get_post_permalink(); ?><h3><?php the_title(); ?></h3> <?php the_post_thumbnail( 'thumbnail' ) ; ?> </a> </div> <?php endwhile; wp_reset_postdata(); ?> </div> <?php } else { esc_html_e( 'No recipes found' ); } ?>

Bu örnekte mevcut varsayılan WordPress Twenty Twenty temasını kullanıyoruz. Twenty Twenty dışında bir tema kullanıyorsanız, temanız için altbilgi içeriğini içeren dosyayı düzenlemelisiniz.

Eklenen kod ile web sitemizi açabiliyoruz ve alt bilgimizde yer alan Tarif yazılarımızı görmeliyiz.

Altbilginizdeki bu gönderilerin düzeni ve görünümü, CSS kullanarak istediğiniz gibi görünecek şekilde şekillendirilebilir. Herhangi bir CSS eklemek için en iyi yer, temanızın ana klasörünün altında bulunan style.css dosyasıdır. Aşağıda kullanmak isteyebileceğiniz bazı olası CSS'lerimiz var.

 .recent-recipes h3 { font-size: 18px; margin: 15px 0; } .recipe { float: left; margin: 15px; } .recent-recipes { height: 240px; margin: 0 auto; width: 1190px; }

Bu CSS kaydedildikten ve sayfa yenilendikten sonra, alt bilgideki Tarif gönderilerinizin düzeninin aşağıdaki gibi göründüğünü görmelisiniz:

CSS ile özel gönderi türlerinin düzenini değiştirme

Döngüyü Sıfırlamanın Önemi

Kodda gerekli argümanları tanımladıktan sonra bir post döngüsünün wp_reset_postdata() işleviyle başladığını ve bittiğini fark etmiş olabilirsiniz. Bu işlevin kullanımı çok önemlidir ve işte nedeni.

WordPress bir sayfa düzeni oluşturduğunda, sayfada yalnızca bir döngü varsa iyi çalışan global bir $post değişkeni kullanır. Özel döngüyü eklediğimize göre, global $post değişkenini temel olarak geçersiz kılıyoruz ve WordPress'e döngünün sıfırlandığını söylemedikçe, döngümüzde tanımladığımız özel gönderi türünü kullanarak oradan devam edecek.

Yukarıdaki kodun altındaki yazı başlığını şu şekilde tekrarlayarak bunun pratikte nasıl çalıştığına bakalım:

 <?php $args = array( 'post_type' => 'recipes', 'post_status' => 'publish', 'orderby' => array( 'date' => 'DESC' ), ); $recipes = new WP_Query( $args ); if( $recipes->have_posts() ) { ?> <div class="recent-recipes"> <?php while( $recipes->have_posts() ) : $recipes->the_post(); ?> <div class="recipe"> <a href=""><?php get_post_permalink(); ?><h3><?php the_title(); ?></h3> <?php the_post_thumbnail( 'thumbnail' ) ; ?> </a> </div> <?php endwhile; wp_reset_postdata(); ?> </div> <?php } else { esc_html_e( 'No recipes found' ); } ?> <?php the_title(); ?>

Şimdi web sitemizin ön yüzündeki sayfamızı yenilersek, son tariflerimizin altında 'Post 1' başlığını görüyoruz.

WordPress Özel Gönderi Türü

Bu mantıklı çünkü wp_reset_postdata(); ile orijinal döngüye geri dönüyoruz. işlev.

Şimdi wp_reset_postdata(); kodunuzdan. the_title(); kodu, 'Mesaj 1' yerine 'Tarif 1' başlığını yansıtacaktır.

Özel Posta Türleri - İleri Yönetim

Özel gönderi davranışımızı ve görünümümüzü daha da özelleştirmek için, önceki makalemizde 'yemek tarifleri' gönderi türümüzü kaydetmek için kullandığımız kodun bir uzantısı olarak eklenebilecek bazı seçeneklere bakacağı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'), 'has_archive' => true, ) ); } add_action( 'init', 'recipes_post_type' );

Şunları yapmak için biraz daha argüman ekleyeceğiz:

  1. Özel Yazı Tipi tariflerinin URL bilgisini değiştirin
  2. Özel Gönderi Türü yönetici menüsünün konumunu değiştirin
  3. Menü simgesini değiştir

Özel Gönderi Türü URL Bilgisini Değiştirme

Bir tarif gönderisi oluşturur ve buna 'Tarif 1' adını verirsek, kalıcı bağlantıların ' olarak ayarlanması koşuluyla, 'Tarif 1' gönderisinin varsayılan URL'si https://mycompanyname.com/recipes/recipe-1/ gibi bir şey olur. Kalıcı Bağlantı Ayarlarımızda posta adı'.

URL'de Tarifler Özel Yazı Tipinin görünme şeklini değiştirmek isterseniz, onun bilgi slug rewrite argümanını kullanabilirsiniz.

URL'den fark ettiğimiz gibi, bu argüman atlanırsa, varsayılan değer Özel Yazı Tipi etiketi 'yemek tarifleri' olacaktır. Örneğin bunu my-home-recipes değiştirmek istiyorsak, kod parçacığımızı şöyle görünecek şekilde düzenleyerek üzerine yazmamız gerekir:

 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, 'rewrite' => array( 'slug' => 'my-home-recipes' ), ) ); } add_action( 'init', 'recipes_post_type' );

Şimdi, kalıcı bağlantıları kaydederseniz (kalıcı bağlantı önbelleğini temizlerseniz) ve tarifinizi tekrar görüntülerseniz, URL'niz https://mycompanyname.com/my-home-recipes/recipe-1/ olmalıdır.

Bilgiyi değiştirirseniz, arşiv URL'sini de Ana Menü sayfasındaki /recipes/ /my-home-recipes/ olarak değiştirmeniz gerekeceğini unutmayın.

Özel Gönderi Türü Menüsü konumlandırmasını değiştirme

Tarifler menüsünü farklı bir konuma taşımak isterseniz menu_position argümanını şu şekilde kullanabilirsiniz:

 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, 'rewrite' => array( 'slug' => 'my-home-recipes' ), 'menu_position' => 5, ) ); } add_action( 'init', 'recipes_post_type' );

Bu argüman için kullanabileceğiniz değerler şunlardır:

0 : en üstte
5 : Yazıların altında
10 : Medyanın altında
15 : Bağlantıların altında
20 : Sayfaların altında
25 : yorumların altında
60 : menüdeki ilk boşluğun altında
65 : Eklentilerin altında
70 : Kullanıcıların altında
75 : Araçların altında
80 : Ayarların altında
100 : menüde ikinci boşluğun altında

Aşağıdaki ekran görüntüsü, menu_position argümanına 5 değeri eklendiğinde menünün konumunu gösterir.

özel yazı tipi menü konumu

Özel Yazı Tipi Menü Simgesini Değiştirme

Şu anda Tarifler menüsü varsayılan gönderiler simgesini kullanıyor. Kendine özgü bir ikonunun olması hoş bir dokunuş olurdu. Bunu başarmak için menu_icon argümanını kullanabiliriz.

 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, 'rewrite' => array( 'slug' => 'my-home-recipes' ), 'menu_position' => 5, 'menu_icon' => 'https://mycompanyname.com/wp-content/uploads/2020/10/recipes.svg', ) ); } add_action( 'init', 'recipes_post_type' );

Kendi simgenizi görüntülemek için menü simgesi konumunuzun tam URL'sini (yukarıdaki kodda gösterildiği gibi) ekleyebilir veya simgenin sınıf adını ekleyerek WordPress Dashicons kitaplığını kullanabilirsiniz. Simgeleri ilgili sınıflarla birlikte burada görebilirsiniz.

Örneğin, yemek simgesini seçerseniz, bunu kodunuza 'menu_icon' => 'dashicons-food' gibi eklersiniz.

 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, 'rewrite' => array( 'slug' => 'my-home-recipes' ), 'menu_position' => 5, 'menu_icon' => 'dashicons-food', ) ); } add_action( 'init', 'recipes_post_type' );

Sonuç olarak, seçtiğiniz simgenin Özel Gönderi Menünüzde görünmesi… Özel Gönderinizin gerçekten özel hissettirmesine yardımcı olur!

özel yazı tipi simgeleri

Daha fazla okuma

Bir Eklenti Kullanarak WordPress Özel Gönderi Türleri Oluşturun
Manuel Olarak WordPress Özel Yazı Tipleri Oluşturun
Kendi Eklentinizi Kullanarak WordPress Özel Gönderi Türleri Oluşturun!

Çözüm

Umarım bu ipuçları, kendi Özel Gönderi Türlerinizi oluşturma arayışınızda size gerçekten yardımcı olur ve bunu yaparken, WordPress web sitenizin işlevlerini ve kullanımını daha da geliştirmenize olanak tanır. Tüm kodlamalarda olduğu gibi, biraz zaman ayırmak ve yeni kodunuzun web sitenizi nasıl etkilediğini görmek en iyisidir. Bu temeller üzerine inşa etmek, daha sonra yoğun özelleştirmenin gerekli olduğu daha karmaşık projelerle başa çıkmanıza izin verecektir.