Standart WordPress RSS feedlerini bir tık geliştirmek için bu hazırladığım eklentiyi veya temanızda fonksiyonu kullanabilirsiniz.
Eklentiyi dilerseniz buradan indirip sitenize ekleyebilirsiniz, eklentinin nasıl yükleneceği hakkında bilgi için: https://wordpress.org/support/article/managing-plugins/#manual-uninstallation
Dilerseniz eklenti yerine aşağıdaki fonksiyonu temanızın function.php
dosyasına yazarak da kullanabilirsiniz.
/* Boost WordPress RSS Feed */
add_filter('pre_get_posts','wpb_feed_filter');
function wpb_feed_filter($query){
if( is_feed() ){if ($query->is_feed){
add_filter('the_content_feed', 'feed_post_thumbnail_resim');
add_filter('the_excerpt_rss', 'feed_excerpt_faha_fazlasi');
add_filter( 'rss2_item', 'feed_enclosure_ve_media');
add_filter('the_content_feed','feed_faha_fazlasi');
add_filter('rss2_ns', function(){echo 'xmlns:media="http://search.yahoo.com/mrss/"';});
}return $query;}
}
function feed_excerpt_faha_fazlasi($content){
$content .= ' Sayfanın tamamını '.get_the_permalink().' adresinde görebilirsiniz.';
return esc_html($content);
}
function feed_faha_fazlasi($content){
$content .= ' <small>Sayfanın tamamını <a target="_blank" rel="noopener" title="'.get_the_title_rss().'" href="'.get_the_permalink().'">'.get_the_permalink().'</a> adresinde görebilirsiniz.</small>';
return $content;
}
function feed_post_thumbnail_resim($content){
global $post;
if(has_post_thumbnail($post->ID)){$output = '<figure><a title="'.get_the_title_rss().'" href="'.get_the_permalink().'">'.get_the_post_thumbnail($post->ID, 'full', array('style' => 'display:block;text-align:center;margin:0 auto 5px;max-width:100%;height:auto;')).'</a></figure> <strong>'.get_the_title_rss().'</strong>: '; $content = $output . wp_trim_words($content, 35, '...');}return $content;
}
function feed_enclosure_ve_media($item){
global $post;
$args = array('post_parent'=>$post->ID,'order'=>'ASC','post_type'=>'attachment','post_status'=>'any','numberposts'=>-1,);
$attachments = get_posts($args);if($attachments){foreach($attachments as $attachment){$image = wp_get_attachment_image_src($attachment->ID, 'full'); $mime = get_post_mime_type($attachment->ID);}}
if($image){
echo '<enclosure url="'.$image[0].'" length="'.filesize(get_attached_file($attachment->ID)).'" type="'.$mime.'"/>
<media:thumbnail url="'.$image[0].'"/>
<media:content url="'.$image[0].'" width="'.$image[1].'" height="'. $image[2].'" medium="image">
<media:title type="html">'.get_the_title($attachment->ID).'</media:title>
</media:content>';
}
return $item;
}
/* Boost WordPress RSS Feed */
Eklentinin içeriği basit ve anlaşılır fakat özetle açıklamam gerekirse; WordPress RSS feedlerine öncelikle normalde olmayan standart “xmlns:media=”http://search.yahoo.com/mrss/” ekliyor, ardından feed itemlere yazıdaki resimleri “enclosure” ve “media:thumbnail“, “media:content” olarak ekliyor ve feedleri kısaltıp(35 kelime) açıklamalarına daha fazlası için ilgili sayfanın adresini koyuyor. Hepsi bu kadar. Örnek Feed görmek isterseniz bu sitenin RSS Feed adresine(https://wolkanca.com/feed/) bakabilirsiniz.
Unutmadan bu eklenti SEO için faydalı!
RSS’ler eskiden çok popülerdi ancak günümüzde pek kullanılmıyor, yine de bazı kullanıcılar, arama motorları ve çoğu uygulama RSS’leri çeşitli şekillerde kullanmaktadır. WordPress RSS’leri tamamen devre dışı bırakmak yerine bu şekilde benim eklentimi kullanarak hem kısaltabilir hem de SEO uyumlu hale getirebilirsiniz. Eğer WordPress Feedleri tamamen devre dışı bırakmak isterseniz aşağıdaki kodu temanızın function.php dosyasında kullanabilirsiniz:
/*Feed kaldır*/
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'feed_links', 2);
function wp_disable_feed(){
wp_die( __( 'Feed yok, <a href="'. esc_url( home_url( '/' ) ) .'">Ana Sayfa'ya dön!</a>' ) );
}
add_action('do_feed', 'wp_disable_feed', 1);
add_action('do_feed_rdf', 'wp_disable_feed', 1);
add_action('do_feed_rss', 'wp_disable_feed', 1);
add_action('do_feed_rss2', 'wp_disable_feed', 1);
add_action('do_feed_atom', 'wp_disable_feed', 1);
add_action('do_feed_rss2_comments', 'wp_disable_feed', 1);
add_action('do_feed_atom_comments', 'wp_disable_feed', 1);
/*Feed kaldır*/
Umarım işinize yarar, kolay gelsin.