Diller için özel kalıcı bağlantı yapısı oluşturma


9

Basit bir çoklu dil sistemi yazdım, burada bir bayrak simgesine tıklamak iki harfli bir kod içeren bir yıllık bir çerez ayarlar (örn. Nl, de, vb.).

wpÇerez değerini okumak için harekete geçiyorum , ardından doğru dili göstermek için the_titleve the_contentfiltrelerini kullanıyorum (farklı diller sayfa / yazı düzenleme ekranında meta kutular üzerinden giriliyor).

İki harfli dil kodunun alan adı ve normal kalıcı bağlantı yapısı arasında olduğu her dil sürümü için kalıcı bağlantılara sahip olmak istemiyorum dışında bu harika çalışıyor. %postname%Permalink yapısını kullanıyorum , bu yüzden aşağıdakilerin hepsi geçerli olacaktır:

http://example.com/nl/about-us
http://example.com/de
http://example.com/fr/2012/03
http://example.com/es/this-is-a-post-title

Geçerli dil İngilizce ise, iki harf kodu kullanılmamalıdır (yalnızca normal kalıcı bağlantı olacaktır).

Şimdiye kadar query_varsdenilen bir sorgu var eklemek için filtreyi kullandım lang, ama bu şimdiye kadar bir var, sonraki adımların ne olduğundan emin değilim. Herhangi bir tavsiye çok takdir!



1
teşekkürler @ l2aelba, bu cevap bazı küçük değişiklikler ile neye ihtiyacım yakın.
Simon Blackbourn

Bunun için alt alan adlarınız mı var yoksa yalnızca tek bir web siteniz mi var
kennethjfalbous

sadece tek bir web sitesi
Simon Blackbourn

Yanıtlar:


1

Sorunuz kendim cevaplayabilecek kadar karmaşık, ancak qTranslateeklenti yüklemenizi öneririm . Eklentinin açıklamasının dediği gibi:

URL'lerinizi güzel ve SEO dostu hale getirmek için 3 Moddan birini seçin. - Her yerde uyumlu? Lang = tr, basit ve güzel / tr / foo / veya güzel ve temiz en.yoursite.com

Böylece eklentinin kodunu incelemeyi ve nasıl yaptıklarını görmeyi deneyebilir veya sadece kullanabilirsiniz.


1
bağlantı için teşekkürler, ben kodu yapılandırabilir görmek için bir göz atacağım.
Simon Blackbourn

-1

Bu filtre kullanıyorum:

function em_wpml_dbem_taxonomy_category_slug($option){
$lang = get_bloginfo('language');

if( $lang === 'es-ES' ){
    $option = 'eventos/categorias';
} else {
    $option = 'events/categories';
}
return $option;
}
add_filter('pre_option_dbem_taxonomy_category_slug', 'em_wpml_dbem_taxonomy_category_slug');

2
Lütfen cevabınıza bir açıklama ekleyin - teşekkürler.
Nicolai
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.