Eklentisiz ve Multi Site Kurulumu Olmadan WordPress Çoklu Dilli Site Yapısı Oluşturma

Çoklu dilli site sorunsalı WordPress camiasının önemli bir problemidir diye düşünüyorum.Benim gibi takıntılı biriyseniz sizin de hayal ettiğiniz bir yapıya tam anlamı ile sahip olamadığınızda tüyleriniz diken diken oluyordur.  Çoklu dilli WordPress yapısı için multi site kurulumu yada eklenti seçeneklerinden birinin değerlendirilmesi gibi seçenekler işinizi görebilir. Burada anlatacaklarımı uygulamadan önce bir test kurulumu yapıp bu seçenekleri değerlendirmenizi tavsiye ederim. Ben de zamanında bir sürü denemeler yapıp sonu hüsran olan test senaryoları ile bir süre boğuştuktan sonra aşağıdaki gibi bir çözüm buldum. Sonu hüsran dememin sebebi tamamen kişiseldir, beni tatmin etmeyen bir iş sizi mutlu edebilir yada benim çözüm dediğim size komik gelebilir ikinci defa uyarıyorum.

Multi Site kurulumu çok alışık olduğumuz bir yapı olmamakla beraber WordPress çekirdek ekibinin özellikle blog servisleri için oluşturduğu mükemmel bir yapıdır, denk gelmediyseniz araştırmanızı tavsiye ederim. Çoklu dilli site tercihlerinde bir çok temanın çözümü fe WPML eklentisidir. Bu eklenti de multi site kurulumu üzerinde çalışmakta. Oralara girmeyeceğim konumuz değil.

Ben subdomain yapısı ile çoklu dilli site oluşturmaya çalıştığımda WPML ayarlarını bir türlü oturtamamıştım. Aslında diğer eklentiler de bu vb. sebeplerden işimi görmedi.

Çözümü temaya bir satırlık kod ekleyerek manuel olarak halletmekte buldum. Aşağıdaki koda bakacak olursanız “dil” adında bir özel alandan çekilen bir değeri ifade ettiğini görürsünüz.

Genelde kurumsal siteler için tercih ettiğimden çok fazla içeriğe sahip olmayan bir yapıdan bahsediyoruz. O yüzden elle “https://urladresi.com/icerik” değerini vermek yeterli oluyor.

İkinci adımda ise dili değiştirtmek istediğim linklere bu php kodunu ekliyorum.

[alert style=”warning”]<?php echo get_post_meta($post->ID, ‘dil’, true); ?>[/alert]

 

Bide de <head> etiketi içine SEO için link rel alternate tagını eklemeyi unutmayın.

[alert style=”warning”]<link rel=”alternate” hreflang=”en” href=”<?php echo get_post_meta($post->ID, ‘dil’, true); ?>” />[/alert]

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir