WordPress RSS Beslemelerini Kapatma ve Yönlendirme

Wordpress RSS Beslemelerini Kapatma ve Yönlendirme

Günümüzde rss beslemeleri sadece sitemizden içerik çekmek isteyenlerin işine yarıyor, bu sebeple de rss beslemelerinin kapatılmasında büyük yarar var. Peki WordPress’de rss beslemelerini nasıl kapatırız? Nelere dikkat etmeliyiz? Hemen göz atalım.

Eklentili mi? Eklentisiz mi?

WordPress’de rss’leri kapatmak için eklenti kullanabilirsiniz. Kodlarla uğraşmak istemeyenler için en iyi seçim bu. Fakat sitenizde ne kadar çok eklenti kullanırsanız (teferruatlar sebebi ile) sitenize o kadar çok yük binecektir. Bu sebeple isteyenler eklentisiz yöntemi tercih edebilirler.

Yinede eklenti tercih edenler için seçenek; Disable Feeds

https://wordpress.org/plugins/disable-feeds/

Eklentinin en güzel yanı rss url’lerini normal içeriğe yönlendirmesi. Kötü yanı ise /rss ve /feed url’lerini açık bırakması.

Yani eklentiyi kurduğunuzda;

siteadresi.com/icerik.html/feed url’si siteadresi.com/icerik.html’ye yönlenirken,

siteadresi.com/rss ve siteadresi.com/feed url’lerinde rss görünmeye devam ediyor. Hata mıdır yoksa önemsenmemiş mi bilemiyorum.

Eklenti ayarlarına WordPress admin panelde Ayarlar > Okuma sayfasının en altından ulaşabilirsiniz. Burada 3 seçenek göreceksiniz.

  • İlk seçenek rss sayfalarını içeriğe yönlendiriyor,
  • İkinci seçenek rss sayfalarını 404 hata sayfasına yönlendiriyor. Bu sayede 404.php sayfasına kod ekleyip rss’lerin hepsini istediğiniz bir url’ye yönlendirebilirsiniz.
  • Üçüncü seçenek ise yazı beslemeleri ile yorum beslemelerini açık bırakmayı sağlıyor, fakat bu durumda neyi engelliyor onu tam anlamadım.

Açıkta kalan url’ler için aşağıdaki kodu htaccess dosyasına ekleyebilirsiniz.

Redirect permanent /feed http://www.siteadresi.com 
Redirect permanent /rss http://www.siteadresi.com 
Redirect permanent /wp-commentsrss2.php  http://www.siteadresi.com

Eklentisiz Yöntem!

Eklentisiz yöntemde tüm rss’leri iptal edecek kodu temamızın functions.php dosyasına eklememiz gerekiyor. Fakat burada bir şeye karar vermemiz gerekiyor. Rss’ler kapatılınca url’ler ne olacak?

Yönlendirme mi? Bildirim mesajı mı?

Rss’leri eklentisiz kapatıcaz fakat sonuç ne olsun istiyoruz? Boşa çıkacak rss url’leri hata sayfasına mı yönlensin? Yoksa ekranda ufak bir bildirim notu mu görünsün?

Rss’ler kapatılsın ve sadece bir not görünsün istiyorsanız aşağıdaki kodu kullanıyorsunuz.

function disable_our_feeds() {
wp_die( __('UYARI: RSS sistemi pasiftir. Anasayfaya gitmek icin tiklayin.') );
}
add_action('do_feed', 'disable_our_feeds', 1);
add_action('do_feed_rdf', 'disable_our_feeds', 1);
add_action('do_feed_rss', 'disable_our_feeds', 1);
add_action('do_feed_rss2', 'disable_our_feeds', 1);
add_action('do_feed_atom', 'disable_our_feeds', 1);

Rss’ler kapatılsın ve url’ler 404 hata sayfasına gitsin istiyorsanız aşağıdaki kodu kullanıyorsunuz. Veya 404 dosyası yerine bir başka php dosyası kullanıp tüm url’leri istediğiniz bir url’ye yönlendiriyorsunuz.

add_action( 'template_redirect', 't5_404_feed', 1 );
function t5_404_feed()
{
if ( is_feed() )
{
status_header( '404' );
locate_template( array ( '404.php', 'index.php ' ), TRUE, TRUE );
exit;
}
}

404.php yazan yere farklı bir php dosyası tanımlayabilir yada 404.php dosyasına meta yönlendirme ekleyerek rss’den çıkacak tüm sayfalar ve sitenin hata sayfalarını istediğiniz bir url’ye yönlendirebilirsiniz.

GÜNCELLEME: Beslemeler iptal olsun, besleme url’leri ilgili konuya yönlensin istiyorsanız, aşağıdaki kodları temanızın functions.php dosyasında uygun konuma yerleştirin.

/**
* Redirect to the homepage all users trying to access feeds.
*/
function disable_feeds() {
wp_redirect( get_permalink( $post->post_parent ) );
die;
}

// Disable global RSS, RDF & Atom feeds.
add_action( 'do_feed', 'disable_feeds', -1 );
add_action( 'do_feed_rdf', 'disable_feeds', -1 );
add_action( 'do_feed_rss', 'disable_feeds', -1 );
add_action( 'do_feed_rss2', 'disable_feeds', -1 );
add_action( 'do_feed_atom', 'disable_feeds', -1 );

// Disable comment feeds.
add_action( 'do_feed_rss2_comments', 'disable_feeds', -1 );
add_action( 'do_feed_atom_comments', 'disable_feeds', -1 );

// Prevent feed links from being inserted in the <head> of the page.
add_action( 'feed_links_show_posts_feed', '__return_false', -1 );
add_action( 'feed_links_show_comments_feed', '__return_false', -1 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );

Son olarak; Yukarıdaki yöntemleri kullandıktan sonra rss url’lerini kontrol etmek için anasayfa url’nizin sonuna şu eklemeleri yapmalısınız.

/rss
/feed
/rss/
/feed/
/wp-rss2.php
/?feed=rss2
/?feed=rss
/?feed=rdf
/?feed=atom
/wp-commentsrss2.php
/wp-rss2.php?cat=33
/içerikurlsi/feed
/içerikurlsi/rss

Not: Yukarıdaki son iki yöntem yerine htaccess ile direk yönlendirmede yapılabilir fakat ne yaptıysam olmadı, olduramadım. Eğer  bu konuda katkı yapabilecek olanlar varsa yorum olarak gönderebilirler.