Online Kimya Özel Dersi Al

ÜCRET

KONU

TARİH

4.7 Blogun En Üstüne Sabitlenmiş Yazılar (Sticky Posts)

wordpress tema yapımı

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 Sabitle

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üzenleme İle Blogun En Üstüne Sabitlenmiş Yazı Oluşturma

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:

Hızlı Düzenleme İle Blogun En Üstüne Sabitlenmiş Yazı Oluşturma

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();
?>

DERSİN SONU

Kimya Özel Dersi Al

Yorum yaparak bize destek olabilirsiniz.

1 yorum: “4.7 Blogun En Üstüne Sabitlenmiş Yazılar (Sticky Posts)”

Bir cevap yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu kadar HTML serbest:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>