WordPress, çekirdek sanitize_title() fonksiyonuyla slug'ları otomatik oluşturur — ama ürettiği şey çoğu zaman sıralanan şey değildir. Varsayılan davranış durak kelimeleri korur ("ve", "için", "en-iyi-kosu-ayakkabisi-nasil-secilir-sizin-icin") ve arama sonuçlarında kırpılan uzun URL'ler üretir; slug'ı önce burada önizleyip kısaltın, sonra yayınlamadan yazının URL alanına yapıştırın. Manuel slug'ın en kritik olduğu yerler: wp_insert_post() ile programatik içe aktarmalar (post_name'i açıkça verin, yoksa WordPress her çakışmada sessizce -2 ekler), tedarikçi başlıklarını miras alan WooCommerce ürün kalıcı bağlantıları ve register_post_type() içindeki rewrite slug'ı ile her yazının kendi slug'ının birlikte URL'yi oluşturduğu özel yazı türleri. Türkçe sitelerde transliterasyonu mutlaka kontrol edin: sanitize_title() eşleyemediği karakterleri yüzde-kodlar ve bazı sunucu ayarlarında çirkin %c3%bc dizileri oluşur — burada temiz ASCII slug üretmek bunu tamamen önler. Ve oturmuş WordPress sitelerinin altın kuralı: yayınlanmış bir slug'ı 301 olmadan (Redirection eklentisi veya .htaccess) değiştirmek, eski URL'nin kazandığı tüm backlink ve sıralamayı çöpe atar.
// WordPress core helper
$slug = sanitize_title('Merhaba Dünya SEO'); // merhaba-dunya-seo
// When inserting a post programmatically
wp_insert_post([
'post_title' => 'My New Article',
'post_name' => sanitize_title('My New Article'),
'post_status'=> 'publish',
]);