WordPress'in yapışkan gönderiler adında çok harika 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, yeni gönderilerinizin üzerinde görünür, ancak yalnızca temanız buna izin verirse. Bu öğreticide, WordPress'te en son yapışkan gönderileri nasıl görüntüleyeceğinizi göstereceğiz.

Not: Bu orta düzey bir eğitimdir ve temel HTML / CSS bilgisi + WordPress tema bilgisi gerektirir.
Video Eğitim
Videoyu beğenmediyseniz veya daha fazla talimata ihtiyacınız varsa, 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 en son yapışkan gönderiyi almak için WordPress veritabanını sorgular. Ardından, her yapışkan gönderinin başlığını bir 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.
Şimdi en son sabitlenmiş gönderilerinizi görüntülemek için, herhangi bir WordPress gönderisinde, sayfasında ve hatta bir metin widget'ında [latest_stickies] kısa kodunu kullanabilirsiniz.
Bir metin widget'ı içinde kısa kodlar kullanmak istiyorsanız, temanızın functions.php dosyasına veya siteye özel eklentinize bu ek satırı eklemeniz gerekecektir.
add_filter('widget_text', 'do_shortcode');
Bu kod parçacığı ve fonksiyon, öne çıkan kaydırıcıda veya sitenizde görüntülemek istediğiniz diğer gelişmiş özelliklerde çok iyi kullanılabilir. Bu kod parçacığı çoğunlukla özel 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 sabitlenen gönderileri görüntülemenize yardımcı olmuştur. Ayrıca, WordPress'te sabitlenen gönderilere bir 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+'da da bulabilirsiniz.
umair
Sizin tarafınızdan yapılan çok bilgilendirici çabalar, bu kod mükemmel çalışıyor,
Bir sorum var, birden fazla kategorim ve alt kategorim var, bu yüzden her kategoriye ayrı ayrı yapışkan bir gönderi yapmak istiyorum ve tüm gönderilerin listelendiği kategori listeleme sayfasında görüntülensin, örneğin (Spor kategorisi->bir yapışkan gönderi – yemek tarifleri kategorisi -> bir yapışkan gönderi) vb.
Dom
Beni doğru yola soktuğun 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ülemenin bir yolunu bulmaya çalışıyordum.
Yukarıdaki kodunuzla oynamaya karar verdim ve nihayet 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 kesme 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üklüyor, ancak her zaman sonuna kadar değil, özellikle gönderi sonradan düzenlenirse... bunun olmamasını sağlamak için önerisi olan var mı?
2: Öne çıkan görselin de görünmesini çok isterdim, bu onu nihai esnek çözüm haline getirirdi! Burada 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 herhangi biri için mantıklı gelmiştir.
Achi Baten
Ana sayfada gönderileri nasıl sizin gibi gösterebilirim?
WPBeginner Desteği
Sitemiz, kendi ihtiyaçlarımız için özel olarak tasarlanmış özel bir tema kullanır. Ancak, dışarıda bazı dergi temalarında benzer işlevsellik bulabilirsiniz.
Yönetici
richard
Merhaba
Kodunuz için teşekkürler. Ancak bir şey başarmaya çalışıyorum ve 2 sorunum var.
Ana sayfamda yalnızca bir 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österiyorum.
İkinci sorun, YouTube'u doğrudan ana sayfama gömmek yerine bir bağlantı olarak göstermesi.
Yardımınız için teşekkürler
Raviraj
Merhaba,
Kodu denedim, en az 1 gönderi yapışkan gönderi olarak atandığında iyi çalışıyor, aksi takdirde hiçbir gönderi yapışkan olarak atanmadığında, en son 5 gönderiyi gösterecektir.
Yani sadece yapışkan gönderileri görüntüleme koşulu bu olurdu, eğer atanmış yapışkan gönderi yoksa hiçbir şey görüntülenmemelidir.
Şimdiden teşekkürler
WPBeginner Ekibi
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 buna göre değiştirmenizin önemli olduğunu düşünüyorum.
Ayrıca, a) $the_query->the_post() çağrısıyla gönderi verilerini ayarladığınız için get_permalink() örneğinde $post->ID'ye gerek yok ve her ne sebeple olursa olsun hala $post->ID'yi dahil etmek istiyorsanız, onu global yapmalısınız, yani global $post;