WordPress Kalıcı Bağlantılardan Kategori İsimlerini Kaldırma

Wordpress Kalıcı Bağlantılardan Kategori İsimlerini Kaldırma

WordPress ile ilk tanıştığınızda kalıcı bağlantıları çok önemsemediniz ve aradan geçen zaman içinde kategori isimlerinin url’yi aşırı uzatması sebebi ile bunlardan kurtulmaya karar verdiniz.. Bunu yapmak gayet basit ama asıl önemli olan Google ve diğer arama motorlarındaki url’lerimizin ne olacağı.. Tabikide eski url’leri yenilerine yönlendireceğiz.

DİKKAT! Yazı, 13 Eylül 2015 tarihinde yayınlanmıştır ve erişim sağladığınız tarihte güncelliğini yitirmiş olabilir.

Yönlendirme işlemi için htaccess kodları kullanabiliriz ama denemelerimde beklediğim sonucu alamadım. Ve hemen eskiden kullandığım Dean’s Permalink Redirect eklentisini aradım. Eklenti WordPress.org’dan kaldırılmış!

Alternatif Yöntem

Yeni bir alternatif var mı diye bakınırken de zaten kullanmakta olduğum Redirection eklentisinin bu işi de başardığını öğrendim.

Eklentinin kullanımına geçmeden önce örnek olayda kalıcı bağlantıları nasıl değiştirdiğimizi görelim.

WordPress admin panelimizde Ayarlar > Kalıcı bağlantılar sayfasına gidiyoruz.

Eski düzende kategori isimleri kullanıyorsanız Özel Yapı altında şunu göreceksiniz;

/%category%/%postname%.html veya /%category%/%postname%/

Ve bununla değiştirip, ayarları kaydedeceksiniz;

/%postname%.html veya /%postname%/

Söylediğim gibi kalıcı bağlantıları değiştirmek bu kadar kolay. Şimdi yönlendirme için Redirection eklentisinden yararlanacağız.

Eklentiyi bu sayfadan yada eklenti kurulum sayfasından aratıp bulun ve sisteme kurarak etkinleştirin.

WordPress admin panelinde Araçlar > Redirection sayfasına gidin. Karşınıza yönlendirme ekleyebildiğiniz form gelecek.

Wordpress Kalıcı Bağlantılardan Kategori İsimlerini Kaldırma

Normalde bu form ile eski bir url’yi veya boşa çıkan bir url’yi, istediğimiz bir adrese yönlendirebiliyoruz. Bende zaten bunun için kullanıyorum. 2008 yılında yayınladığım ama artık yayından kaldırdığım yazının url’sini, o yazı ile alakalı olabilecek başka bir yazıma, başka bir siteye veya ilgili kategoriye yönlendiriyorum. Bu sayede o url’den de yararlanmış oluyorum.

Bunun için; Source URL kutucuğuna eski url’yi, Target URL kutucuğuna yeni url’yi ekleyip “Add redirection” butonuna tıklıyoruz.

Ama bu sefer yapacağımız şey biraz farklı olduğundan aşağıdakini uyguluyoruz..

Wordpress Kalıcı Bağlantılardan Kategori İsimlerini Kaldırma

Source URL kutucuğuna tek tek kategori url isimlerini yazıyor, regular expression seçeneğine tik koyuyor ve Target URL kutucuğunada /$1 karakterlerini yerleştiriyoruz.

Tahmin edeceğiniz gibi bunu tek tek her kategori için yapmanız gerekiyor. Kategori url isimlerini ise WordPress admin panelinde Yazılar > Kategoriler sayfasında bulabilirsiniz. Genelde kategori adı ile kısa ismi aynı olsada bazen farklılıklar olabiliyor ve yanlış yazarsanız o kategori yönlendirmesi başarısız oluyor.

Wordpress Kalıcı Bağlantılardan Kategori İsimlerini Kaldırma

Bunları tek tek bir kere yazmanız yeterli oluyor. Daha sonrasında eklentiyi bozmaz veya kapatmazsanız yönlendirmeler aynen devam ediyor. Birkaç ay içerisinde ise arama motorlarındaki kategori/post-name şeklindeki url’leriniz /post-name olarak değişmiş oluyor. Ve diyelim ana-kategori/alt-kategori/post-name şeklinde url’leriniz var, bunlar için ekstra birşey yapmıyor sadece tüm kategorileri yukarıdaki gibi kaydediyorsunuz.

Hepsi bu. Şimdi Google üzerinden birkaç url ile yönlendirmeyi test edebilirsiniz.

DİKKAT!

Eklenti işini güzel yapıyor fakat sonradan keşfettiğim bir sorun var; Bazı kategori sayfalamalarında kategoride 2.,3.,4. sayfalara tek tek gitmeye kalktığınızda buralarında yönlendirildiğini görüyorsunuz. Uygulamadan sonra böyle bir sorun yaşarsanız (yani kategori sayfalarında 2. sayfadan sonrasıda yönleniyorsa!) eklenti yerine aşağıdaki htaccess kodunu kullanın.

<IfModule mod_rewrite.c>>
RewriteEngine On
RewriteBase /
RewriteRule ^category/(.+)$ http://mydomain.com/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Yukarıdaki komutlar çoğu wp htaccess’ında var. Ancak 3. sıradaki yok! Onu kendi kategorilerimize göre çoğaltarak kodu geliştiriyoruz. Diyelim ki 4 kategoriyi yönlendirdik, hepsini aşağıdaki gibi uyarlayacağız. Böylece url’lerden kaldırdığımız kategori isimlerinde Google yönlendirmesi çıkarsa 404 sorunu olmayacak.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sinema/sinema-haber/resim-galeri/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^sinemafilm/film-bilgileri/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^fragman/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^kisafilm/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^efsanesahneler/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^sinemasektoru/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^sinemasektoru/film-sirketleri/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^sinografi/aktorler/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^televizyon/diziler/dizi-haber/(.+)$ http://www.domain.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{http_host} ^([^.]+\.[a-z0-9\.?]+) [NC] 
RewriteRule (.*) http://%1/$1 [R=301,L]
</IfModule>

Bunun sonucunda şu olacak;

www.domain.com/televizyon/diziler/dizi-haber/seksenler-dizisi.html

şeklindeki eski yazı url’si, panelde kalıcı bağlantılardan kategori isimlerini kaldırdığımız için boşa düşmüştü, Google’dan bu url’ye gelen olursa 404 hata sayfası yerine doğru url’ye yönlenecekler.

www.domain.com/seksenler-dizisi.html

Ve tabiki kategori sayfalamasında da 2. sayfadan sonra sorun yaşamayacaksınız.

NOT: Url’leriniz kategori/post-name yerine, gün/ay/yıl/post-name şeklinde ise aşağıdaki permalink generator aracını kullanabilir ve sitenizde kullanmanız gereken htaccess kodunu oluşturabilirsiniz. Ama ne yazık ki aynı araç ile oluşturduğum category kodu işe yaramadı.

Sorularınız olursa yorum panelinden yazabilirsiniz.