WordPress’de varsayılan olarak kategori adresleri /kategori/kategori-ismi/ şekline oluyor, yönetim panelinden “kategori” dizin ismini istediğiniz gibi değiştirme imkanınız var. Peki bunu tamamen kaldırıp /kategori-ismi/ olarak nasıl yaparız?
Yoast SEO veya popüler SEO eklentilerinden birini kullanıyorsanız bunu yapan bir ayar vardır. O ayarı etkinleştirerek bunu yapabilirsiniz. /wp-admin/admin.php?page=wpseo_titles#top#taxonomies sayfasında “Kategori bağlantıları” ayarında “Kaldır” şeklinde etkinleştirin bu kadar.
Eğer herhangi bir eklenti kullanmıyorsanız aşağıdaki fonksiyonu temanızın function.php dosyasına eklemeniz yeterli: (/category/ yerine //kategori/ yazmanız gerekebilir) Kaynak: user_trailingslashit().
function remove_category($string, $type){
if ($type != 'single' && $type == 'category' && (strpos( $string, 'category' ) !== false)){
$url_without_category = str_replace('/category/', '/', $string);
return trailingslashit($url_without_category);
}
return $string;
}
add_filter('user_trailingslashit', 'remove_category', 100, 2);
Bir başka yöntem de aşağıdaki gibi yapmak:
- Kalıcı bağlantılar ayarlarından “Özel yapı” seçin ve “/%category%/%postname%/” olarak ayarlayın.
- Kategori temeli kısmına . koyun. (sadece nokta).
- Kaydedin.
Şimdi yukarıdaki herhangi bir yöntemle kategori yapısını değiştirdiyseniz daha önceki kategori adreslerini yeni adreslerine yönlendirmek için dilerseniz .htaccess
dosyasına aşğıdaki gibi bir kural ekleyebilirsiniz:
RedirectMatch 301 ^/kategori/(.*)$ /$1/
Hepsi bu kadar.
Custom taxonomy için taxonomy register ederken aşağıdaki gibi kullanırsanız aynı şekilde eki kaldırmış olursunuz. Yani /custom-tax-category/category-name/ yerine /category-name/ elde edersiniz. Kaynak: https://stackoverflow.com/search?q=Remove+taxonomy-base+from+URL+in+WordPress
'rewrite' => array(
'slug' => '/',
'with_front' => false
)
Eğer içerisinde anlamlı bir anahtar kelime yok ise gereksiz dizinlerden kurtulmak SEO için faydalı olabilir.
Umarım işinize yarar, kolay gelsin.