BU DERSİN BAŞLIKLARI
Bloğun veya blogun en üstüne sabitlenmiş yazı demek, eklenirken ya da düzenlenirken, sayfanın sağ kenarında, “Blogun en üstüne sabitle” kutucuğu işaretlenen yazı demektir. Aşağıda bu kutucuğun resmi verilmiştir:
Blogun en üstüne sabitlenmiş yazı oluşturmanın bir başka yolu da, yönetim panelinde Yazılar->Tüm yazılar sayfasında, “Hızlı düzenle” menüsünü kullanmaktır:
Hızlı düzenle menüsüne tıklandığında açılan sayfada, “Bu yazıyı sabit yap” adında bir kontrol kutucuğu görülecektir:
Yukarıdaki resimde görüldüğü gibi, Bu yazıyı sabit yap adındaki kutucuk işaretlenip, “Güncelle” butonuna basıldığında, yazı blogun en üstüne sabitlenmiş olarak güncellenir.
Bir yazıyı, blogun en üstüne sabitlenmiş olarak işaretleme özelliği, sadece, WordPress kurulumu ile birlikte gelen ve tipi yazı olan içerikler için kullanılabilir, sonradan eklenen, özel yazı tiplerinde kullanılamaz.
Temada Blogun En Üstüne Sabitlenmiş Yazıları Kullanmak
Blogun en üstüne sabitlenmiş yazılar, WordPress veritabanına sticky_posts
olarak kaydedilir. get_option('sticky_posts')
ifadesi ile, bu yazıların, ID değerleri, bir dizi şeklinde, getirilebilir. Blogun en üstüne sabitlenmiş yazıları şablon dosyalarında kullanmak için, özel sorgular oluşturmamız gerekir. Tema geliştiricileri, tasarımlarına göre farklı sorgular oluşturarak, blogun en üstüne sabitlenmiş yazıları farklı şekillerde gösterebilmektedir. Aşağıda, bu farklı kullanımlara örnekler verilmiştir.
Örnek-1
Bu örnekte, blogun en üstüne sabitlenmiş en eski yazı gösterilmektedir.
<?php
/* Blogun en üstüne sabitlenmiş yazıların hepsini getir */
$blogun_en_ustune_sabitlenmis_yazilar = get_option( 'sticky_posts' );
/* Blogun en üstüne sabitlenmiş en eski yazı için sorgu oluştur */
$sorgu = new WP_Query( 'p='.$blogun_en_ustune_sabitlenmis_yazilar[0] );
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } ?>
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnekteki kod, blogun en üstüne sabitlenmiş bir yazı bulamazsa, bütün yazıları gösterir.
Örnek-2
Bu örnekte, blogun en üstüne sabitlenmiş en yeni yazı gösterilmektedir.
<?php
/* Blogun en üstüne sabitlenmiş yazıların hepsini getir */
$blogun_en_ustune_sabitlenmis_yazilar = get_option( 'sticky_posts' );
/* En son ekleneni en üste getirecek şekilde tekrar sırala */
rsort( $blogun_en_ustune_sabitlenmis_yazilar );
/* Blogun en üstüne sabitlenmiş en eski yazı için sorgu oluştur */
$sorgu = new WP_Query( 'p='.$blogun_en_ustune_sabitlenmis_yazilar[0] );
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } else {
// Blogun en üstüne sabitlenmiş hiç yazı yoksa burası çalışır
}
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnek-3
Bu örnekte, farklı bir yöntem ile, blogun en üstüne sabitlenmiş en yeni yazı gösterilmektedir.
<?php
$argumanlar = array(
'posts_per_page' => 1,
'post__in' => get_option( 'sticky_posts' ),
'ignore_sticky_posts' => 1
);
$sorgu= new WP_Query( $argumanlar );
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } ?>
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnekteki kod, blogun en üstüne sabitlenmiş bir yazı bulamazsa, son eklenen yazıyı gösterir.
Örnek-4
Bu örnekte, blogun en üstüne sabitlenmiş, son 5 yazı gösterilmektedir.
<?php
/* Blogun en üstüne sabitlenmiş yazıların hepsini getir */
$blogun_en_ustune_sabitlenmis_yazilar = get_option( 'sticky_posts' );
/* En son ekleneni en üste getirecek şekilde tekrar sırala */
rsort( $blogun_en_ustune_sabitlenmis_yazilar );
/* En son eklenen 5 tanesini al (dilerseniz 5 yerine farklı bir sayı kullanabilirsiniz) */
$blogun_en_ustune_sabitlenmis_yazilar = array_slice( $blogun_en_ustune_sabitlenmis_yazilar, 0, 5 );
/* Blogun en üstüne sabitlenmiş yazılar için sorgu oluştur */
$sorgu = new WP_Query( array( 'post__in' => $blogun_en_ustune_sabitlenmis_yazilar, 'ignore_sticky_posts' => 1 ) );
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } else {
// Blogun en üstüne sabitlenmiş yazı yoksa burası çalışır
}
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnek-5
Bu örnek, blogun en üstüne sabitlenmiş ilk yazıyı gösterir ve sabitlenmiş bir yazı bulmazsa, hiç bir çıktı vermez.
<?php
/* Blogun en üstüne sabitlenmiş yazıların hepsini getir */
$blogun_en_ustune_sabitlenmis_yazilar = get_option( 'sticky_posts' );
$argumanlar = array(
'posts_per_page' => 1,
'post__in' => $blogun_en_ustune_sabitlenmis_yazilar,
'ignore_sticky_posts' => 1
);
/* Blogun en üstüne sabitlenmiş yazılar için sorgu oluştur */
$sorgu= new WP_Query( $argumanlar );
if ( isset( $blogun_en_ustune_sabitlenmis_yazilar[0] ) ) {
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } ?>
<?php } ?>
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnek-6
Bu örnekte, blogun en üstüne sabitlenmiş yazılar hariç, bütün yazılar gösterilir.
<?php
/* Sorgu oluştur */
$sorgu = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } ?>
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnek-7
Bu örnekte, ID değeri 6 olan kategorideki bütün yazılar, bu kategoride olup, blogun en üstüne sabitlenmiş olanlar hariç tutularak, gösterilmiştir.
<?php
/* Blogun en üstüne sabitlenmiş yazıların hepsini getir */
$blogun_en_ustune_sabitlenmis_yazilar = get_option( 'sticky_posts' );
/* Sorgu oluştur */
$sorgu = new WP_Query( array(
'cat' => 6,
'ignore_sticky_posts ' => 1,
'post__not_in' => $blogun_en_ustune_sabitlenmis_yazilar,
));
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } ?>
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
Örnek-8
Bu örnekte, sayfalanmış bir arşiv sayfasında, ID değeri 6 olan kategorideki bütün yazılar, bu kategoride olup, blogun en üstüne sabitlenmiş olanlar hariç tutularak, gösterilmiştir.
<?php
/* Sayfa numarasını tespit et */
$sayfa_numarasi = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
/* Blogun en üstüne sabitlenmiş yazıların hepsini getir */
$blogun_en_ustune_sabitlenmis_yazilar = get_option( 'sticky_posts' );
/* Sorgu oluştur */
$sorgu = new WP_Query( array(
'cat' => 3,
'ignore_sticky_posts' => 1,
'post__not_in' => $blogun_en_ustune_sabitlenmis_yazilar,
'paged' => $sayfa_numarasi,
));
// WordPress döngüsü
if ( $sorgu->have_posts() ) { ?>
<div class="blogun-en-ustune-sabitlenmis-yazilar">
<?php while ( $sorgu->have_posts() ) {
$sorgu->the_post(); ?>
<h2 class="sabitlenmis-yazi-basligi">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php } ?>
</div>
<?php } ?>
<?php
/* Başka bir sorgu için hazır ol */
wp_reset_postdata();
?>
1 yorum: “4.7 Blogun En Üstüne Sabitlenmiş Yazılar (Sticky Posts)”