WordPress'te Özel Tek Gönderi Şablonları Nasıl Oluşturulur
Yayınlanan: 2023-02-12Aynı sitedeki diğer gönderilerden tamamen farklı bir düzene sahip bir gönderi ayrıntıları sayfası gördünüz mü? Bunun nedeni muhtemelen özel bir şablon kullanmasıdır. Tek tek gönderilere özel bir şablon atayarak sitenizin görünümü üzerinde size daha fazla esneklik sağlayabilirsiniz.
Özel bir tek gönderi şablonu oluşturmayı öğrenmekle ilgileniyor musunuz? Bu gönderide, size nasıl kolayca kendinizinkini oluşturabileceğinizi göstereceğim!
Özel Şablonların Avantajı
Özel bir şablon oluşturmaya başlamadan önce, neden özel bir şablona ihtiyaç duyabileceğinizi ve bunun ne işe yaradığını inceleyelim.
Belirli bir gönderinin veya gönderi türünün içeriğinizin geri kalanından öne çıkmasını istiyorsanız, özel bir tek gönderi şablonu oluşturmayı düşünebilirsiniz. Bu şablon yalnızca onu atadığınız gönderilere uygulanacaktır, yani standart gönderilerinizden tamamen farklı bir düzene sahip olabilir. Benzersiz bir tasarım ve düzen, söz konusu gönderi için kullanıcı katılımını artırabilir.
Kendinizinkini geliştirmeye hazır mısınız? Özel bir gönderi şablonu oluşturmak ve kullanmak, özel bir sayfa şablonuna benzer.

Özel Gönderi Şablonu Nasıl Oluşturulur
Örneğim için Yirmi Onyedi temasını kullanacağım, ancak süreç herhangi bir tema için aynı olacak.
Özel bir gönderi şablonu oluşturmadan önce, önce bir alt tema oluşturacağım. Ana temada çalışabilirsiniz, ancak özel bir şablon oluşturduğunuz için ana temayı güncellerseniz şablonunuzu kaybedersiniz. Bu nedenle, özel şablonlarınızı ana temadan ayrı tutmanız iyi bir uygulamadır.
Özel bir şablon için, bir Şablon Adı (şablonun adı) ve bir Şablon Gönderi Türü (bu şablonun kullanılacağı yer) tanımlamanız gerekir. Şuna benziyor:
[php] <?php /* Şablon Adı: Tam Genişlikte Gönderi * Şablon Gönderi Türü: gönderi*/ /*Tam genişlikte tek gönderileri görüntülemek için şablon. */ get_header(); ?> [/php]
Dosyayı kaydettiğinizde, dosya adını full-width-post.php
gibi şablon adıyla ilgili tutun. Bir gönderiyi yönetici panelinden görüntülerseniz, yeni şablonu Gönderi Özellikleri bölümündeki bir açılır menüde gösterir.

Özel şablonumuz hazır, ancak henüz kullanışlı değil. Biraz daha faydalı hale getirelim!
Not: Birden çok dosya üzerinde çalışacağız, bu nedenle dosya adlarını ve klasörleri takip edin.
İşte Twenty Seventeen temasındaki blog yazısı sayfalarının mevcut düzeni. Bundan memnunum, o yüzden bırakacağız.

Şimdi, birkaç gönderi için tam genişlikte bir düzen istediğinizi varsayalım. Gönderi başlığını meta verilerin üzerine koyacağız. Meta verilerin üstte ve altta bir kenarlığı olmalı ve hem başlık hem de meta veriler ortalanmış ve hizalanmış olmalıdır. İşte tel kafes:

Bu düzeni oluşturmak için, gönderi ayrıntıları sayfalarının görüntülenmesinden hangi dosyanın sorumlu olduğunu bulmanız gerekir. Çoğu temada, belirli önceden tanımlanmış şablonlar olmadıkça, dosya single.php
. Kod yapısı temadan temaya değişir, bu nedenle belirli temanızın nasıl çalıştığını anlamak biraz öğrenmeyi gerektirebilir.
Gönderi ayrıntıları sayfalarını görüntüleyen dosyayı bulduğunuzda, başka bir dosyayı çağırmak için bir işlevin kullanılıp kullanılmadığını veya şablonun doğrudan oluşturulup oluşturulmadığını görmelisiniz. Yirmi Onyedi temalı bu örnekte, get_template_part işlevidir.
get_template_part
yolu, burada izlenecek en önemli kısımdır.
[php] <div class="wrap"> <div id="birincil" class="içerik-alanı> <ana kimlik="ana" class="ana site" rol="ana"> <?php /* Döngüyü başlat */ while ( have_posts() ) : the_post(); get_template_part('template-parts/post/content', get_post_format() ); // Yorumlar açıksa veya en az bir yorumumuz varsa, yorum şablonunu yükleyin. if ( yorumlar_open() || get_comments_number() ) : yorumlar_template(); endif; the_post_navigation( array( 'prev_text' => '<span class="screen-reader-text">' .__( 'Önceki Gönderi', 'yirmiyedi' ) . "</span><span aria-hidden="true" class="nav-subtitle>' Önceki', 'yirmiyedi' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' .twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</ span>%title</span>', 'sonraki_metin' => '<span class="screen-reader-text">' . __('Sonraki Gönderi', 'yirmiyedi' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __('Sonraki', 'yirmi onyedi' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . yirmiseventeen_get_svg( dizi( 'simge' => 'sağ ok' ) ) . '</span></span>', ) ); son sırada; // Döngünün sonu. ?> [/php]
Gördüğünüz gibi, bir yoldan bahsediyor:

[php] get_template_part('template-parts/post/content', get_post_format() ); [/php]

Böylece content.php
dosyası, gönderi ayrıntıları sayfasının çıktısını almak için single.ph
içinde çağrılır.
Artık single.php
dosyasının nasıl çalıştığını bildiğinize göre, ondan kodu kopyalayalım ve daha önce alt temada oluşturduğumuz full-width-post.php
dosyamıza yapıştıralım. Tam genişlikte bir şablon olacağı için kenar çubuğunu kaldıracağız.

Şimdi yukarıda belirtilen yoldan content.php dosyasını kopyalayın. Şablon dosyanızın bulunduğu dizine yapıştırabilirsiniz, ancak ana temayla aynı klasör yapısını izlemenizi öneririm.
Dosya adını olduğu gibi tutabilirsiniz, ancak varsayılan şablonda bir şeyi değiştirmek isterseniz, bu bir çakışmaya neden olur. Herhangi bir sorunu önlemek için, dosyayı yeniden adlandırmanızı ve content-full-width.php
gibi şablon adıyla ilgili tutmanızı öneririm.

Dosyalar yerinde, bu yüzden şimdi yazı başlığını değiştirmek ve meta verileri göndermek için kodu değiştirelim.
[php] <başlık sınıfı="giriş-başlığı"> <?php eğer ( is_single() ) { başlık( ' &lth1 class="giriş-başlığı>', '</h1> '); } elseif ( is_front_page() &&is_home() ) { başlık( ' &lth3 class="giriş-başlığı"><a href="' . esc_url( get_permalink() ) . "" rel="yer imi>', '</a></h3> '); } başka { başlık( ' &lth2 class="giriş-başlığı"><a href="' . esc_url( get_permalink() ) . "" rel="yer imi>', '</a></h2> '); } if ( 'post' === get_post_type() ) { Eko ' <div class="giriş metası>'; eğer ( is_single() ) { yirmiyedi_posted_on(); } başka { yankı yirmiyediteen_time_link(); yirmiyediteen_edit_link(); }; yankı '</div> <!-- .entry-meta -->'; }; ?> </header> <!-- .entry-header --> [/php]
Bu şablonu kullanmak için, WordPress yöneticisinden istediğiniz gönderiyi düzenleyin ve açılır menüden şablonu atayın.

Gönderiyi ön uçtan kontrol ederseniz, hala tam genişlikte değil, ancak başlık ve meta veriler yer değiştirmiş, bu nedenle gönderinin özel şablonumuzu kullandığını biliyoruz.

Tam genişlikte yapmak için biraz CSS eklemeliyiz. WordPress otomatik, gövde bölümündeki şablon adına göre bir sınıf oluşturur.

Bu özel şablonu hedeflemek için o sınıfı kullanın. CSS'yi alt tema style.css
dosyasına ekleyebilirsiniz.
[css] .post-template-full-width-post.has-sidebar:not(.error404) #primary{ kayan nokta: yok; genişlik:otomatik; } .post-template-full-width-post .entry-header{ metin hizalama: merkez; kenar boşluğu: 1,3 cm; } .post-template-full-width-post .entry-meta{ border-top:1px katı #ccc; border-bottom:1px katı #ccc; dolgu: 15 piksel 0; } [/css]
Şimdi istediğimiz gibi bir düzenimiz var. Bu şablonu kullanan herhangi bir gönderi, tamamen aynı stile sahip olacaktır.

Gereksinimlerinize uyacak şekilde istediğiniz kadar özel şablon oluşturabilirsiniz. Gönderi kategorilerine dayalı şablonlar bile oluşturabilirsiniz.
Bunun İçin Bir Eklenti Kullanabilir miyim?
PHP kodları konusunda rahat değilseniz, o zaman bazı eklentiler kullanabilirsiniz, ancak itiraf etmeliyim ki, özel gönderi şablonları oluşturmak için çok az sayıda eklenti mevcuttur ve bunların çoğu pek kullanışlı değildir çünkü zaten şablonu manuel olarak oluşturmanız gerekir.
Post Custom Templates Lite eklentisini çok faydalı buldum. Güzel bir sürükle ve bırak arayüzünde herhangi bir kodlama olmadan yazı şablonları oluşturmanıza izin veren ücretsiz bir eklentidir. Pek çok özelleştirme seçeneği vardır, bu nedenle bir gönderi şablonunu özelleştirmek istiyorsanız, genel olarak bu eklenti size yardımcı olabilir.
Not: Ücretsiz sürüm, yalnızca normal gönderi şablonlarını özelleştirmenize izin verir. Özel gönderi şablonları oluşturabilmek ve bazı ek özellikler elde edebilmek için pro sürümünü kullanmanız gerekir.

Çözüm
İster manuel olarak çalışın, ister özel bir tek gönderi şablonu oluşturmak için bir eklenti kullanın, en önemli gönderilerinizin diğerlerinden farklı olmasını sağlar. İlham almak için Brian Dean'in sitesine bakın; diğer gönderilerinden benzersiz görünmelerini sağlamak için kesin kılavuz gönderileri için belirli bir şablon kullanıyor.
Öyleyse bir deneyin ve kendi benzersiz tek gönderi şablonunuzu oluşturun! Oluşturduğunuz her site için en iyi sonuçları almak üzere, WordPress barındırma için tek kaynağınız olarak WP Engine'in yönetilen barındırma platformunu seçin!