Bu yazı 13.10.2008 - 19:18 tarihinde yayınlanmıştır

WordPress yazı girişi ile devamını bölmek

WordPress yazı girişi ile devamını bölmek

En çok merak edilen konulardan biri, WordPress yazılarındaki giriş metni ile sonrasındaki devam metinlerinin bölünerek, 2 farklı parça halinde görüntülenmesidir. Böylece giriş ile devamı arasında birçok kod çalıştırabilir ya da reklam v.b. ekleyebilirsiniz.

WordPress yazı girişi ile devamını bölmek

Şu anki ve bir önceki temamda bunu kullandım. Büyük ihtimalle bir sonraki temamda da kullanıyor olacağım. İşte çözüm yolu.

<!–more–> etiketinin önemi

Yazıyı biraz yazdınız. Sonrasına <!–more–> etiketi eklerseniz, sonrasındaki metinler ana sayfada listelenmez. Yani yazının devamı olarak verilmek istenen, <!–more–> etiketinden sonrasıdır. Listeleme sayfalarında bu etiketten önce yer alan metin görüntülenir. Yazı şablonu olan single.php dosyasında ise tüm metin görüntülenir. Asıl problem single.php içerisinde yazının girişi ve devamını ayrı ayrı görüntülemektir. Bunun olabilmesi için tüm yazılarınızda <!–more–> etiketini kullanmış olmalısınız. Böylece az sonra paylaşacağım fonksiyon yazının girişini ve devamını ayırt edebilecektir.

Tema fonksiyonları için “functions.php” dosyası

WordPress temasına ait tüm fonksiyonlar, kendisinin klasörü içerisinde yer alan functions.php adlı dosya içerisinde yer alır. Bu ileri düzey tema oluşturmanın başında gelir ve her temada yer almaz. Eğer tema klasörünüz içerisinde hali hazırda bulunan bir functions.php dosyası yer alıyorsa, onu kullanacağız. Eğer yoksa functions.php adında boş bir dosya oluşturun. İçerisini yazının devamında dolduracağız.

İşlemi yapan fonksiyonumuz

Bu fonksiyonu bir önceki temam için ben yazmıştım. Aslında fazla uğraşmadım. WordPress’in sistem dosyalarını inceledim ve gereksiz satırları çıkarıp, isteğimi gerçekleştirecek şekilde yeniledim.

“functions.php” dosyanız varsa

Eğer temanız klasörü içerisinde zaten “functions.php” dosyası varsa, bu dosyayı açın. ?> satırından önce alttaki kodları ekleyin. Eğer o satır öncesi boş değilse, satır atlatarak boş bir satır oluşturun.

function yazi_giris() {
	global $id, $post, $more, $single, $withcomments, $page, $pages, $multipage, $numpages;
	global $preview;
	global $pagenow;

	if ( $page > count($pages) )
		$page = count($pages);

	$content = $pages[$page-1];
	$more_baslangic = strpos($content,'<!--more');
	$giris_metin = substr($content,0,$more_baslangic);
	$giris_metin = apply_filters('the_content', $giris_metin);
	echo $giris_metin;
}

“functions.php” dosyanız yoksa ve yeni bir tane oluşturduysanız

Eğer “functions.php” dosyanız yoksa yeni bir tane oluşturun demiştim. İşte bu dosyayı açın ve içerisine alttaki satırları aynen ekleyin.

<?php
function yazi_giris() {
	global $id, $post, $more, $single, $withcomments, $page, $pages, $multipage, $numpages;
	global $preview;
	global $pagenow;

	if ( $page > count($pages) )
		$page = count($pages);

	$content = $pages[$page-1];
	$more_baslangic = strpos($content,'<!--more');
	$giris_metin = substr($content,0,$more_baslangic);
	$giris_metin = apply_filters('the_content', $giris_metin);
	echo $giris_metin;
}
?>

“Single.php” dosyasında değişim

Sıradaki işlem single.php dosyanız için. Burada yazıyı görüntüleyen,

<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>

gibi bir satırdır. Bu satır değişebilir. Ancak daima the_content yer alacaktır. Bu satırı,

<?php the_content('devam',true); ?>

olarak değiştirin. Bu satırlar, temalara göre farklılık gösterebilir. Lütfen her tema için kod yollamayın bana arkadaşlar. WordPress Türkiye forumlarından destek alabilirsiniz fazlası için. Her zaman dediğim gibi, WordPress temalarında ileri düzey işlemler yapmak, biraz kodlama bilgisi gerektiriyor. PHP hakkında hiçbir yorumu olmayanlar için, bu işlemler çok zor olabilir. O nedenle elimden daha fazlası gelmiyor.

Yukarıdaki değişimden sonra sadece yazının devamı görüntülenecektir. Yani <!–more–> etiketinden öncesi yer almaz. the_content fonksiyonunda true olarak tanımladığımız ikinci parametre bu işlevi sağlamaktadır. Eğer false olsaydı ya da hiç tanımlanmasaydı, yazının girişi de görüntülenecekti. Ki birçok WordPress temasında bu şekildedir.

Gelelim yazının girişini görüntülemeye. Bunun için de,

<?php the_content('devam',true); ?>

satırının üstüne,

<?php yazi_giris(); ?>

satırını ekleyin. Böylece yazının sadece giriş kısmı ekrana basılacaktır. Her iki satır arasına ise ekstra kodlarınızı (reklam v.b.) ekleyebilirsiniz.

Merak Ettikleriniz

Yorumlar
Yorum Yap

İsminiz

E-Posta

Web Siteniz

Yorumunuz

Dmry.net Vital Teknoloji tarafından desteklenmektedir