Kategoriler
Blog

Author ve search bağlantı yapısını değiştirmek

Bu hafta sonuna da yine heryerde göremeyeceğiniz, gayet anlaşılır ve hoşunuza gitmesi muhtemel olan güzel bir WordPress ipucu ile girelim.
Bu günkü WordPress ipucumuz http://blogunuz.com/author/yazarismi/ olan standart baglantı yapısını http://blogunuz.com/yazar/yazarismi/ olarak nasıl değiştirebileceğimiz üzerine.
Yukarıda author yerine biz örnek olarak yazar kullanacağız siz yazar yerine istediğiniz bir kelimeyi kullanabilirsiniz mesela; http://blogunuz.com/uye/yazarismi/ gibi.

Bunun yanında yine buna benzer bir olay arama fonksiyonunun da kalıcı bağlantısında değişiklik yapabiliriz, normalde http://blogunuz.com/search/aranacakkelime/ olan yapıyı biz örneğin http://blogunuz.com/ara/aranacakkelime/ olarak değiştireceğiz.

wordpress ipucu


Değişiklik yapacağımız iki dosya var, bunlar /wp-includes/ klasörü içinde bulunan rewrite.php ve classes.php. Ve bir de eğer varsa bir yerlerde değişiklik yapmadan önceki haliyle olan bağlantıların yeni değişiklik yaptığımız haline yönlendirmek için .htaccess dosyasına yapacağımız bir ekleme.

rewrite.php dosyasında yapacağımız değişiklik;

185. satırda bulunan

var $author_base = ‘author’;

kısmını

var $author_base = ’yazar’;

olarak değiştirelim, bunu yukarıda da belirttiğim gibi isterseniz yazar değil uye veya istediğiniz bir kelime ile de değiştirebilirsiniz.
189. satırda bulunan

var $search_base = ‘search’;

kısmını

var $search_base = ‘ara’;

olarak değiştirelim.

classes.php dosyasında yapacağımız değişiklik;

295. satırda ki

if ( (0 == count($wp_query->posts)) && !is_404() && !is_search() && ( $this->did_permalink || (!empty($_SERVER[‘QUERY_STRING’]) && (false === strpos($_SERVER[‘REQUEST_URI’], ‘?’))) ) ) {

kısmı

if ( (0 == count($wp_query->posts)) && !is_404() && !is_author() && !is_search() && ( $this->did_permalink || (!empty($_SERVER[‘QUERY_STRING’]) && (false === strpos($_SERVER[‘REQUEST_URI’], ‘?’))) ) ) {

olarak değiştirelim.

.htaccess dosyasına ekleme

Yukarıda da belirttiğim gibi daha önce manuel olarak bir yerlere örneğin http://blogunuz.com/yazar/yazarismi/ olarak bağlantı yazdıysanız yukarıda yaptığımız işlemle artık bu bağlantı çalışmayacak, bu yüzden biz de muhtemel bir yerlere eklediğimiz bu eski bağlantıların yeni bağlantılara yönlenmesi için bir .htaccess kodu ekleyeceğiz.
Ekleyeceğimiz kod şu;
Standart olarak

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

olan .htaccess dosyasını şu şekilde değiştireceğiz;

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^search/(.*)$ http://blogunuz.com/ara/$1 [R=301,L]
RewriteRule ^author/(.*)$ http://blogunuz.com/yazar/$1 [R=301,L]
RewriteRule ^author/(.*)$/feed/ http://blogunuz.com/yazar/$1/feed/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Yuakarıdaki .htaccess örneğinde blogunuz.com kısımlarını kendi blog adresiniz ile değiştirmelisiniz.

Arzu ederseniz değişiklik yapılmış dosyaları indirip /wp-includes/ klasörü içine atabilirsiniz, yalnızca eğer gerekli ise .htaccess dosyasındaki değişikliği kendiniz yapmalısınız. indir

Denemeleri WordPress 2.3, 2.5, 2.6 ve 2.7 versiyonları ile yapılmıştır. Örnek bağlantılar; wolkanca.com/yazar/admin/, wolkanca.com/ara/wordpress ipucu
Hepsi bu kadar, iyi bloglamalar.