WordPress, yapışkan yazılar adı verilen çok güzel bir özelliğe sahiptir. Yapışkan yazıları blogunuz için öne çıkan yazılar 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 veriyorsa. Bu eğitimde size WordPress’te en son yapışkan yazıları nasıl görüntüleyeceğinizi göstereceğiz.
Not: Bu orta seviye bir eğitimdir ve temel HTML / CSS bilgisi + WordPress temaları bilgisi gerektirir.
Video Eğitimi
Videoyu beğenmediyseniz veya daha fazla talimata ihtiyacınız varsa, okumaya devam edin.
Yapmanız gereken ilk şey, bu kod parçacığını kopyalayıp temanızın functions.php dosyasına veya siteye özel bir eklentiye 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, en son 5 yapışkan gönderiyi almak için WordPress veritabanını sorgular. Daha sonra her yapışkan gönderinin başlığını bir liste biçiminde bir bağlantıyla birlikte görüntüler. Tüm bunları bir fonksiyona sardık ve bir kısa kod oluşturduk.
Artık en son yapışkan yazılarınızı görüntülemek için [latest_stickies] kısa kodunu herhangi bir WordPress yazısında, sayfasında veya hatta bir metin widget’ında kullanabilirsiniz.
Kısa kodları bir metin widget’ı içinde kullanmak istiyorsanız, bu ekstra kod satırını temanızın functions.php dosyasına veya siteye özel eklentiye eklemeniz gerekecektir.
add_filter('widget_text', 'do_shortcode');
Bu snippet ve işlev, öne çıkan kaydırıcıda veya sitenizde görüntülemek istediğiniz diğer gelişmiş özelliklerde çok iyi kullanılabilir. Bu snippet ç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 yapışkan gönderileri görüntülemenize yardımcı olmuştur. WordPress’te yapışkan gönderilere son kullanma tarihi ekleme hakkındaki eğitimimize de göz atmak isteyebilirsiniz.
Bu makaleyi beğendiyseniz, WordPress video eğitimleri için lütfen YouTube Kanalımıza abone olun. Bizi Twitter ve Google+‘da da bulabilirsiniz.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
umair says
very informative efforts made by you, this code works perfectly fine,
i have a question that i have multiple categories & sub-categories, so i just want to make a sticky post to each category separately, and displayed on category list page where all posts of that specific category listed, like (Sports category->one sticky post – cooking recipes category -> one sticky post) etc
Dom says
Thanks for getting me on the right track!!
The code works great in getting the Title to show up where the short code is pasted.
However, I was trying to find a method to display the entire post (all content, in stead of just a title or even excerpt) on a specific page.
I decided to play with your code above in order to try and achieve this and finally managed…
Although the title displays the same size as paragraph text, I’m sure I can fix that.
Here’s what I changed…please let me know if you think there’s something I should reconsider lest the whole world explodes
I simply changed your get_the_excerpt() text to get_the_content() and this successfully pulled in the entire blog post into that page.
In order to remove the bulleted indentation I then removed the ” ” ” ” tags, but had to leave the apostrophes in place, otherwise the page wouldn’t load.
So in essence, where ” or ” was before, now there is only ” and so on.
That’s all I changed and it mostly works like a charm for me…
There are 2 issues I noticed:
1: Sometimes it loads most of the post, but not always right down to the end, especially if the post is edited afterwards…anyone with suggestions to ensure this doesn’t happen?
2: I’d love if the featured image would also show up, this would make it the ultimate flexible solution! Any thoughts here?
Thanks again for the advice!
Hope what I explained makes sense to anyone who wants to achieve the same as I was after.
Achi Baten says
How can i show homepage post like you?
WPBeginner Support says
Our site uses a custom theme designed specifically for our own needs. However, you can find similar functionality in some magazine themes out there.
Yönetici
richard says
Hello
Thank you for your code. However i try to achieve something and i have 2 issues.
I want to display only one sticky post on my home page and only the youtube video present on the content.
ACtually i display the title and all the content of a post (include texts, pictures and videos).
Second problem is that it display youtube as a link and not embed directly the video into my homepage.
Thank you for your help
Raviraj says
Hi,
I have tried out with the code, It works fine when at least 1 post has been assigned as sticky post else when none of the posts are assigned a sticky, then it will display all latest 5 posts.
So would be the condition to display only sticky posts, if there are no sticky posts assigned then It should not display anything.
Thanks in advance
WPBeginner Staff says
Thanks for pointing this out. We have updated the code.
AnastisSourgoutsidis says
‘caller_get_posts’ has been replaced by ‘ignore_sticky_posts’ since v3.1 so I think its important to change your code to reflect that.
Also, a) $post->ID is not needed in this instance of get_permalink() as you’ve setup the post data by calling $the_query->the_post(), and if for whatever reason you still want to include $post->ID, you should be global-ing it, i.e. global $post;