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.tr/yazar/admin/, wolkanca.com.tr/ara/wordpress ipucu
Hepsi bu kadar, iyi bloglamalar.

“Author ve search bağlantı yapısını değiştirmek” için 10 yanıt

  1. merhaba bu tür değişiklikleri yapmak bize ne gibi yarar sağlayacak?

  2. @ersin
    kalıcı bağlantı yapısının arama motorlarındaki etkisini biliyoruz, örneklemek gerekirse siz otomobil üzerine bir blog yazıyorsanız mesela arama bağlantı yapısını şu şekilde yaparsanız arama motorlarında istediğiniz aramalarda çıkma şansınız artar; blogunuz.com/otomobil/lamborgini/.

    yukarıda biri siteniz de lamborgini aradı, ve arama sonucu da blogunuz.com/otomobil/lamborgini/ bağlantısı ile çıkıyor, dolayısıyla hem ziyaretcinin aklında kalıcı hem de arama motoruna sitenizin konusu olan otomobil vurgulanmış oluyor 😉

    bir diğer faydası da farklı olması, farklılık her zaman iyidir 😛

  3. hatanın neden kaynaklandıgını bilecek kadar bilgim war..yedeklerini almıştım classes.php ve rewrite.php tekrar yükledim sorun kalmadı ve hatta belki başka bişiden kaynaklanıyordur dedim yine aynı hata werdi bilginize…

  4. @bilgin
    ha hata senin blogunda öyle mi ben başka anladım, bu yöntem bu blogda çalışıyor gördüğün gibi burada hata yok.

  5. wordpress 2.8 versiyonunda sadece rewrite.php deki search kısmını istediğiniz ile değiştirmek yeterli artık.

    authour için ise bir eklenti var sonra buraya koyarım adını unuttum o hallediyor.

    yalnız önemli bir nokta var değişikliği yaptıktan sonra hemen aktif olmuyor çünkü bu rewrite ayarlarını veritabanında önbelleğe alıyor bu alet, o önbellek de options tablosunda rewrite olarak duruyor, onu silerseniz hemen aktif olur silmezseniz onun önbellekte kalma olayı baya uzun veya silinmesi için bir atraksiyona ihtiyaç duyordur.

    kolay gelsin.

  6. classes.php değişikliğine artık gerek yok sadece rewrite.php de değişiklik yapmanız yeterli.

  7. volkan sağol çok faydalı oldu..wordpress arama permalink yapısı değişti mi?

    domain.com/?s=keyword şeklinde oluyor… sen bu yazıdaki örnekte domain.com/search/keyword.. yazmışsın da?

  8. kardeşm herşey güzelde tr karakterleri göstermiyo nasil çözeriz?

    nice-search eklentisi yeterli oluyo dosya değiştirmenize gerek yok fakat tr karakter sorunu var cekmiyo karakterleri çözen yazarsa sevinirim acil