BU DERSİN BAŞLIKLARI
Yazı biçimleri veya yazı formatları, yazı veya sayfa tipindeki içeriklerinizi, farklı şablonlar kullanarak göstermenin bir yoludur.
Yazı biçimleri, WordPress’in kullandığı bir sınıflandırma yöntemidir.
WordPress temanızda, yazı biçimleri özelliğini etkinleştirdiğinizde, yeni bir yazı eklerken, sayfanın sağ kenarındaki Ayarlar->Belge menüsünde, Durum ve görünürlük sekmesi altında, yazı biçimi için, bir seçim kutusu oluşur. Aşağıda, oluşan menünün bir görüntüsü verilmiştir:
WordPress temanıza ekleyebileceğiniz yazı biçimleri bellidir ve birazdan bu biçimlerden teker teker bahsedilecektir.
Yazılarınızın, biçimine göre, farklı şablonlarda görünmesi istiyorsanız, yazı biçimlerine özel, şablon dosyaları hazırlamanız gerekmektedir. Eğer yazı biçimleri için, özel şablonlarınız yoksa, hepsi için aynı şablon dosyası kullanılacaktır.
WordPress’in Desteklediği Yazı Biçimleri
WordPress, aşağıda listelenen yazı biçimlerini tanır. Bir içeriğin, yazı biçimini değiştirmeniz, o içerikte, herhangi bir değişiklik yapmaz, yazının o biçim için hazırlanmış şablona göre gösterilmesini sağlar.
Aşağıda listelenen yazı biçimleri, WordPress kurulumu ile birlikte gelen, WordPress’in tanıdığı biçimlerdir. Bu biçimlerin, hangi yazılarda, hangi amaçla kullanılacağı ve şablon dosyalarının nasıl olacağı, tamamen sizin tercihinizdir. Aşağıda, genel olarak tercih edilen, kullanım amaçları verilmiştir:
- standard: (Türkçesi: Standart) Varsayılan yazı biçimidir. Bu yazı biçimi için özel bir şablon hazırlamak tamamen sizin tercihinizdir.
- aside: (Türkçesi: Ayrı) Tipik olarak, başlıksızdır, bir hatırlatma ya da bilgilendirme notu gibi kullanılır.
- gallery: (Türkçesi: Galeri) Genellikle bir fotoğraf galeri formatındaki yazılar için kullanılan biçimdir.
- link: (Türkçesi: Bağlantı) Genellikle, sadece bir likten ibaret olan yazılar için kullanılan biçimdir.
- image: (Türkçesi: Resim) Tek bir resimden ibaret olan yazılar için kullanılan biçimdir.
- quote: (Türkçesi: Alıntıla) Bir alıntıdan ibaret olan yazılar için kullanılan biçimdir.
- status: (Türkçesi: Durum) Twitter gibi durum paylaşımı tarzı yazılarınız için kullanılan biçimdir.
- video: (Türkçesi: Video) Genellikle bir videodan ibaret olan yazılarınız için kullanılan biçimdir.
- audio: (Türkçesi: Ses dosyası) Genellikle bir ses dosyasından ibaret olan yazılarınız için kullanılan biçimdir.
- chat: (Türkçesi: Sohbet) Sohbet tarzı yazılarınız için kullanılan biçimdir.
Temaya Yazı Biçimi Desteği Ekleme
Temanıza, yazı biçimi desteği kazandırmak için, functions.php
dosyasına, aşağıdaki kodu eklemeniz yeterlidir:
function ilktemam_yazi_bicimleri() {
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) );
}
add_action( 'after_setup_theme', 'ilktemam_yazi_bicimleri' );
Yukarıdaki kodda, WordPress’in tanıdığı bütün yazı biçimleri eklenmiştir. Dilerseniz, ihtiyacınız olmayan biçimleri silebilirsiniz.
Yazı biçimleri, bir tema fonksiyonu olan add_theme_support()
fonksiyonu ile eklenir.
Diğer İçeriklere Yazı Biçimi Desteği Ekleme
Dilerseniz, yazılarınız dışında, sayfalarınıza veya özel yazı tiplerinize de yazı biçimi desteği ekleyebilirsiniz. Bunu için, add_post_type_support()
fonksiyonunu aşağıdaki gibi kullanmanız yeterlidir:
function ilktemam_diger_iceriklere_yazi_bicimleri_ekle() {
// sayfa (page) tipindeki içeriklere, yazı biçimi desteği ekler
add_post_type_support( 'page', 'post-formats' );
// 'benim_yazilarim' tipindeki yazılara, yazı biçimi desteği ekler
add_post_type_support( 'benim_yazilarim', 'post-formats' );
}
add_action( 'init', 'ilktemam_diger_iceriklere_yazi_bicimleri_ekle' );
Yeni bir içerik tipi eklerken, register_post_type()
fonksiyonu kullanılır. Bu fonksiyonun, supports
argümanı ile, eklenen içerik tipine, yazı biçimi desteği sağlanır. Aşağıda, bunun bir örneği verilmiştir:
$argumanlar = array(
...
'supports' => array( 'title', 'editor', 'author', 'post-formats')
);
register_post_type('kitaplar', $argumanlar );
Yazı Biçimlerini Temada Kullanma
Temanızın, şablon dosyalarında, get_post_format()
fonksiyonu yardımı ile, bir yazının biçimine ait link adını getirebilirsiniz. Buradan hareketle, yazı biçimlerine ait şablon parçaları hazırlanıp, bu parçalar, yazılarınız için hazırladığınız şablon dosyalarında dinamik olarak kullanılabilir.
get_post_format()
fonksiyonu; döngü içinde iken get_post_format()
, döngü dışında ise get_post_format($post_id)
şeklinde kullanılır. Parametredeki, $post_id
değeri, formatını öğrenmek istediğiniz yazının ID değeridir.
Aşağıda, yazı biçimleri için hazırlanan şablon parçalarının, şablon dosyalarında dinamik olarak kullanımına temel bir örnek verilmiştir.
Örnek-1:
Temamızda, aşağıdaki gibi üç çeşit (aside, gallery ve link), yazı biçimi desteklensin:
function ilktemam_yazi_bicimleri() {
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link' ) );
}
add_action( 'after_setup_theme', 'ilktemam_yazi_bicimleri' );
Biçimine göre bu yazıları, farklı şablonlarda göstermek isteyelim ve tema dizinimizde, template-parts
klasörü altında, bu yazı biçimleri için content-{yazi-biciminin-adi}.php
şeklinde şablon parçaları hazırlayalım:
TEMAMIZIN ANA DİZİNİ
index.php
template-parts
- content.php
- content-aside.php
- content-gallery.php
- content-link.php
.... (diğer dosya ve klasörler)
Bu durumda, yazılarımızı, biçimine göre farklı bir şablonda göstermek için, aşağıdaki gibi bir şablon dosyası hazırlamamız gerekir:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Formatına göre şablon parası kullanıyoruz -->
<?php get_template_part('template-parts/content', get_post_format() ); ?>
<?php endwhile;
else: ?> <!-- İçerik yoksa -->
<?php _e( 'Üzgünüm, aradığınız kriterlerlere uygun bir içerik bulunamadı.', 'textdomain' ); ?>
<?php endif; ?>
Yazı Biçimi Kontrolü
Aşağıdaki koşullu ifade, şablon dosyalarınızda, döngü içerisinde kullanarak, bir içeriğin, koşulda belirtilen yazı biçiminde olup olmadığını kontrol eder:
if ( has_post_format( 'video' )) { // Yazının biçimi video ise,
echo 'Bu yazı video biçiminde bir yazıdır.';
}
Yazı Biçimleri İle İlgili Fonksiyonlar
set_post_format()
Bir içeriğin yazı biçimini düzenler, günceller.
İki parametre içe çalışır:
set_post_format( $yazinin_id_degeri, $yazi_bicimi_adi )
Aşağıda, döngü içerisindeki kullanımına bir örnek vardır:
<?php
/*
* Yazı biçimini 'gallery' olarak ayarlar
*/
set_post_format(the_ID(), 'gallery' );
?>
get_post_format()
Bir içeriğin, yazı biçiminin link adını getirir.
Döngü dışında kullanılıyor ise, parametre olarak, içeriğin ID değeri girilmelidir.
Aşağıdaki kod, ekrana, ID numarası 55 olan bir içeriğin, yazı biçimi bastırır.
<?php
echo get_post_format(55);
?>
ID numarası 55 olan içeriğin, yazı biçimi Galeri ise, ekrana gallery basılacaktır.
has_post_format( )
Bir içeriğin, belli bir biçimde olup olmadığını kontrol eder.
İki parametre ile çalışır:
has_post_format( $bicim, $yazinin_id_degeri )
$bicim
parametresi, kontrol etmek istediğimiz biçimin link adıdır. Bu parametre bir dizi de olabilir. Bu durumda, dizi içerisindeki biçimlerden herhangi birine sahip bir içerik arıyoruz demektir.
Döngü içerisinde isek, ikinci parametreye gerek yoktur.
Aşağıda, döngü içerisindeki bir içeriğin biçiminin gallery veya link olup olmadığı kontrol edilmektedir:
if(has_post_format( array('gallery', 'link'))) {
// İçeriğin formatı Galeri ya da Bağlantı ise burası çalışır
}
get_post_format_link()
Bir yazı biçimine ait yazı arşivi için bir url değeri getirir.
Bir parametre ile çalışır ve bu parametre zorunludur:
get_post_format_link( $yazi_biciminin_link_adi )
Örnek bir kullanım:
<a href="<?php echo get_post_format_link( 'gallery' ); ?>">Galerileri görmek için tıklayınız.</a>
get_post_format_stirng()
Yazı biçiminin, tercüme edilmiş adını getirir. Yani link adını değil, yönetim panelinde görünen adını getirir.
Bir parametre ile çalışır:
get_post_format_string( $yazi_biciminin_link_adi )
Yavru Temada Yazı Biçimlerinin Kullanımı
Yavru temalar, ana temalarında tanımlanan yazı biçimlerini miras alırlar. Yavru bir temaya, ana temadan farklı olarak bir yazı biçimi eklemek isterseniz, önceliğini, ana temadan sonrasına ayarlayarak eklemelisiniz.
add_action()
fonksiyonunun, üçüncü parametresi, önceliktir değeridir. Varsayılan öncelik değeri ise 10’dur. Bu fonksiyona, üçüncü parametre olarak, 11 ve daha büyük bir değer girer iseniz, bu aksiyon, varsayılandan daha düşük bir öncelik değerine sahip olur ve daha geç çalıştırılır.
Aşağıda, yavru tema için, yazı biçimi ekleme örneği verilmiştir:
add_action( 'after_setup_theme', 'yavrutema_bicimleri', 11 );
function yavrutema_bicimleri(){
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link' )
);
}
Yazı Biçimlerine CSS Uygulama
Temalarda, içeriklerinizi kapsayan, article
etiketi içerisinde, post_class()
fonksiyonunu kullanmak iyi bir alışkanlıktır:
<article <?php post_class(); ?>> ... </article>
post_class()
fonksiyonu, yazı biçimi için, özel CSS sınıfları üretir. Mesela, yazınızın biçimi “Durum” ise, bu yazınızı gösteren sayfanın, article
etiketinde, format-status
adında bir CSS sınıfı oluşur. Bu sınıf yardımı ile, bu yazı biçimindeki bütün içeriklerinize özel olarak, CSS uygulayabilirsiniz.
Mesela, “Durum” biçimindeki yazılarınızda, CSS kullanarak, yazı başlığını gizlemek isterseniz, aşağıdaki kodu kullanabilirsiniz:
.format-status .post-title {
display:none;
}
1 yorum: “4.6 Yazı Biçimleri-Formatları (Post Formats)”