BU DERSİN BAŞLIKLARI
Tek Yazı Sayfası
Aşağıdaki örnek, is_single()
koşulunu kullanarak, ekranda tek bir yazı varken, bu ekrana çıktı gönderir.
if ( is_single() ) {
echo 'Bu yazı,' . single_cat_title() . ' kategorisindeki bir çok yazıdan sadece biridir!';
}
Aşağıdaki örnek, döngü içinde kullanılır:
if ( is_home() || is_single() ) { // Ana sayfa veya tek yazı sayfası ise
the_content(); // bütün metin
}
else { // değilse
the_excerpt(); // yazının özetini göster
}
Bir kodun ya da bir içeriğin ana sayfada görünmesini istemiyorsanız:
<?php if ( ! is_home() ) {
// Burası ana sayfada görünmesin
}?>
Birden Çok Koşul Koyma
PHP dilinin mümkün kıldığı, bütün koşul ifadelerini kullanabilirsiniz:
// 2 koşuldan biri olsa yeter
if ( is_single() || is_page() ) ) {
// Ekranda, tek yazı veya bir sayfa içeriği varsa
}
if ( is_archive() && ! is_category( 'ayakkabi' ) ) {
// Bir arşiv sayfası ise fakat bu arşiv sayfası "ayakkabi" kategorisine ait değil ise bişeyler yap...
}
// 3 koşulun da gerçekleşmesi lazım
if ( $query->is_main_query() && is_post_type_archive( 'urunler' ) && ! is_admin() ) {
// Eğer ana sorguda ve özel bir yazı tipi olan "urunler" tipinden bir arşiv sayfası ise
// ve yönetim sayfasında değil isek bişeyler yap...
}
if ( is_post_type_archive( 'filmler' ) || is_tax( 'aksiyon' ) || is_tax( 'aktor' ) ) {
// Bir "filmler" arşivinde isek
// veya "aksiyon" sınıflandırmasına ait bir arşiv sayfasında isek
// veya "aktor" sınıflandırmasına ait bir arşiv sayfasında isek
}
<h3>Tarihe Göre Farklar</h3>
<!--Eğer biri, yazılarınızı, tarihe göre görmek isterse, önceki yıllarda yazılanlar için farklı bir CSS sınıfı kullanalım..
-->
<?php
// Döngü başlar
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
</h2>
<small><?php the_time('F jS, Y') ?> by <?php the_author() ?></small>
<?php
// tarih temelli bir arşiv sayfası ise
if ( is_date() ) {
if ( date( 'Y' ) != get_the_date( 'Y' ) ) {
// bu yazı önceki yıllarda yazılmış
// bu yazıyı "eski-yazi" sınıfıyla şekillendirelim
echo '<div class="eski-yazi">';
} else {
echo '<div class="yeni-yazi">';
}
} else {
echo '<div class="yeni-yazi">';
}
the_content( 'Devamını oku »' );
?></div>
Değişebilen Sayfa Yanı (Sidebar) İçeriği
Ekrandaki sayfanın türüne göre, sayfa yanı içeriğinizi ayarlayabilirsiniz. Aşağıdaki kod buna bir örnektir:
<div id="sidebar">
<?php // ekrandaki sayfaya göre içerik üretelim
if ( is_home() ) { // ana sayfadayız
// ana kategorilerimizi listeledik
wp_list_categories( 'optionall=0&sort_column=name&list=1&children=0' );
} elseif ( is_category() ) { // bir kategori arşivindeyiz
// bütün kategorileri listeledik
wp_list_categories( 'optionall=1&sort_column=name&list=1&children=1&hierarchical=1' )
} elseif ( is_single() ) {
// ekranda tek bir yazı var, biz da sayfa yanını boş biraktık
} elseif ( is_page() ) { // bir sayfadayız
// ama hangisi?
if ( is_page( 'Hakkımızda' ) ) {
// Hakkımızda sayfası
echo "Bu sayfa hakkımızda sayfası!";
} elseif ( is_page( 'Kolofon' ) ) {
echo "Bu sayfa, benim, WordPress " . bloginfo( 'version' ) . "versiyonunda çalışan kolofon sayfam";
} else {
// geriye kalan sayfa tipi sayfalardayız
echo "içeriklerimizi payalaşarak bizi destekleyin!";
}
} else {
// burayda arşivler, arama sayfaları, 404 gibi sayfalar kaldı
echo "Bizi yaşatın ki siz de yaşayabilesiniz.";
}
?>
</div>
Bazen, şablonlarınızın farklı yerlerinde kullanılan sorgular, bazı koşullu ifadeleri yerine getirmekte sorun yaşayabilir. Mesela, sayfa üstünüzde sorunsuz çalışan bir koşullu ifade, sayfa altında sorun çıkarabilir. Bu sorunu çözmenin yolu, sayfa altında veya yanında kullanılan, koşullu ifadeden önce, wp_reset_query()
fonksiyonunu kullanmaktır. Aşağıda, bunun bir örneği vardır.
<?php wp_reset_query();
if ( is_page( '2' ) ) {
echo 'Burası sayfa 2!';
}
?>
1 yorum: “2.14 Koşullu İfade Örnekleri”