WordPress'in yapışkan gönderiler adında çok havalı bir özelliği vardır. Yapışkan gönderileri blogunuz için öne çıkan gönderiler olarak düşünün. Bir gönderiyi yapışkan olarak işaretlediğinizde, temanız izin veriyorsa yeni gönderilerinizin üzerinde görünür. Bu eğitimde, WordPress'te en son yapışkan gönderileri nasıl göstereceğinizi anlatacağız.

Not: Bu orta düzey bir eğitimdir ve temel HTML / CSS bilgisi + WordPress tema bilgisi gerektirir.
Video Eğitim
Videoyu beğenmezseniz veya daha fazla talimata ihtiyacınız olursa, okumaya devam edin.
Yapmanız gereken ilk şey, bu kod parçasını temanızın functions.php dosyasına veya siteye özel bir eklentiye kopyalayıp yapıştırmaktır.
function wpb_latest_sticky() {
/* Get all sticky posts */
$sticky = get_option( 'sticky_posts' );
/* Sort the stickies with the newest ones at the top */
rsort( $sticky );
/* Get the 5 newest stickies (change 5 for a different number) */
$sticky = array_slice( $sticky, 0, 5 );
/* Query sticky posts */
$the_query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
// The Loop
if ( $the_query->have_posts() ) {
$return .= '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
$return .= '<li><a href="' .get_permalink(). '" title="' . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>';
}
$return .= '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
return $return;
}
add_shortcode('latest_stickies', 'wpb_latest_sticky');
Yukarıdaki kod, 5 adet en son yapışkan gönderiyi almak için WordPress veritabanını sorgular. Ardından, her yapışkan gönderinin başlığını liste biçiminde bir bağlantıyla görüntüler. Tüm bunları bir işlev içine sardık ve bir kısa kod oluşturduk.
En son sabitlenmiş yazılarınızı göstermek için, herhangi bir WordPress gönderisi, sayfası ve hatta metin widget'ında [latest_stickies] kısa kodunu kullanabilirsiniz.
Bir metin widget'ı içine kısa kodlar eklemek isterseniz, temanızın functions.php dosyasına veya siteye özel eklentisine bu ek satırı eklemeniz gerekir.
add_filter('widget_text', 'do_shortcode');
Bu kod parçacığı ve fonksiyon, öne çıkan kaydırıcıda veya sitenizde göstermek istediğiniz diğer gelişmiş özelliklerde çok iyi kullanılabilir. Bu kod parçacığı çoğunlukla özel bir ana sayfaya veya dergi tarzı bir görünüme sahip bir WordPress sitesine yöneliktir.
Hepsi bu kadar, umarız bu makale WordPress blogunuzda en son sabitlenmiş gönderileri göstermenize yardımcı olmuştur. Ayrıca WordPress'te sabitlenmiş gönderilere son kullanma tarihi ekleme eğitimimize de göz atmak isteyebilirsiniz.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Google+ üzerinden de bulabilirsiniz.

umair
yaptığınız çok bilgilendirici çabalar, bu kod mükemmel çalışıyor,
Birden fazla kategorim ve alt kategorim var, bu yüzden her kategori için ayrı ayrı sabitlenmiş bir gönderi yapmak istiyorum ve o belirli kategorinin tüm gönderilerinin listelendiği kategori listeleme sayfasında görüntülenmesini istiyorum, örneğin (Spor kategorisi->bir sabitlenmiş gönderi – yemek tarifleri kategorisi -> bir sabitlenmiş gönderi) vb.
Dom
Beni doğru yola soktuğunuz için teşekkürler!!
Kod, kısa kodun yapıştırıldığı yerde Başlığın görünmesini sağlamada harika çalışıyor.
Ancak, tüm gönderiyi (sadece başlık veya alıntı yerine tüm içeriği) belirli bir sayfada görüntülemek için bir yöntem bulmaya çalışıyordum.
Bunu başarmak için yukarıdaki kodunuzla oynamaya karar verdim ve sonunda başardım…
Başlık paragraf metniyle aynı boyutta görünse de, bunu düzeltebileceğimden eminim.
Here’s what I changed…please let me know if you think there’s something I should reconsider lest the whole world explodes
Sadece `get_the_excerpt()` metninizi `get_the_content()` olarak değiştirdim ve bu, tüm blog yazısını o sayfaya başarıyla çekti.
Madde işaretli girintiyi kaldırmak için daha sonra ” ” ” ” etiketlerini kaldırdım, ancak tırnak işaretlerini yerinde bırakmak zorunda kaldım, aksi takdirde sayfa yüklenmezdi.
Yani özünde, daha önce ” veya ” olan yerlerde şimdi sadece ” ve benzeri var.
Değiştirdiğim tek şey bu ve benim için çoğunlukla sihirli bir şekilde çalışıyor...
Fark ettiğim 2 sorun var:
1: Bazen gönderinin çoğunu yükler, ancak her zaman sonuna kadar değil, özellikle gönderi sonradan düzenlenirse... bunun olmamasını sağlamak için önerileri olan var mı?
2: Öne çıkan görselin de görünmesini çok isterim, bu onu nihai esnek çözüm haline getirirdi! Bu konuda bir fikri olan var mı?
Tavsiye için tekrar teşekkürler!
Umarım açıkladıklarım, benim peşinde olduğumla aynı şeyi başarmak isteyen herkes için mantıklıdır.
Achi Baten
Ana sayfa gönderilerini sizinki gibi nasıl gösterebilirim?
WPBeginner Destek
Sitemiz, özel ihtiyaçlarımız için özel olarak tasarlanmış özel bir tema kullanıyor. Ancak, piyasadaki bazı magazin temalarında benzer işlevsellik bulabilirsiniz.
Yönetici
richard
Merhaba
Kodunuz için teşekkür ederim. Ancak bir şey başarmaya çalışıyorum ve 2 sorunum var.
Ana sayfamda yalnızca bir tane yapışkan gönderi ve içerikte bulunan yalnızca youtube videosunu görüntülemek istiyorum.
Aslında bir gönderinin başlığını ve tüm içeriğini (metinler, resimler ve videolar dahil) görüntülüyorum.
İkinci sorun, youtube'u bir bağlantı olarak göstermesi ve videoyu doğrudan ana sayfamıza yerleştirmemesi.
Yardımınız için teşekkürler
Raviraj
Merhaba,
Kodu denedim, en az 1 gönderi yapışkan olarak atandığında iyi çalışıyor, aksi takdirde hiçbir gönderi yapışkan olarak atanmadığında, 5 en son gönderiyi görüntüler.
Yani yalnızca yapışkan gönderileri görüntüleme koşulu bu olur, eğer yapışkan gönderi atanmamışsa o zaman hiçbir şey görüntülenmemelidir.
Şimdiden teşekkürler
WPBeginner Personeli
Bunu belirttiğiniz için teşekkürler. Kodu güncelledik.
AnastisSourgoutsidis
‘caller_get_posts’, v3.1'den beri ‘ignore_sticky_posts’ ile değiştirildi, bu yüzden kodunuzu bunu yansıtacak şekilde değiştirmenin önemli olduğunu düşünüyorum.
Ayrıca, a) $post->ID, get_permalink() örneğinde gerekli değildir çünkü $the_query->the_post() çağrısıyla gönderi verilerinizi ayarladınız ve her ne sebeple olursa olsun $post->ID'yi dahil etmek istiyorsanız, onu global yapmalısınız, yani global $post;