भाषाओं के लिए कस्टम पर्मलिंक संरचना का निर्माण


9

मैंने एक सरल बहु-भाषा प्रणाली लिखी है, जिसमें एक झंडे के आइकन पर क्लिक करने से एक साल का कुकी सेट होता है जिसमें दो अक्षर भाषा कोड होते हैं (जैसे कि nl, de, आदि)।

मैं wpकुकी मान को पढ़ने के लिए कार्रवाई में हुक करता हूं , फिर सही भाषा दिखाने के लिए the_titleऔर the_contentफ़िल्टर का उपयोग करें (पृष्ठ / पोस्ट संपादन स्क्रीन पर मेटाबोक्स के माध्यम से विभिन्न भाषाओं में प्रवेश किया जाता है)।

यह सब महान काम करता है, सिवाय इसके कि मैं प्रत्येक भाषा संस्करण के लिए भी अनुमति देना चाहता हूं, जिसके लिए दो अक्षर भाषा कोड डोमेन नाम और सामान्य पर्मलिंक संरचना के बीच है। मैं %postname%पर्मलिंक संरचना का उपयोग कर रहा हूं , इसलिए सभी निम्नलिखित मान्य होंगे:

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

यदि वर्तमान भाषा अंग्रेजी है, तो कोई दो अक्षर कोड का उपयोग नहीं किया जाना चाहिए (यह सिर्फ सामान्य पर्मलिंक होगा)।

अब तक मैंने query_varsएक क्वेरी संस्करण को जोड़ने के लिए फ़िल्टर का उपयोग किया है lang, लेकिन यह एक सा है जो मुझे मिला है, मैं अनिश्चित हूं कि अगले चरण क्या हैं। किसी भी सलाह बहुत सराहना की!



1
धन्यवाद @ l2aelba, जो कुछ मामूली बदलावों के साथ मुझे आवश्यक है, उसका उत्तर पर्याप्त है।
साइमन ब्लैकबोरन

क्या आपके पास इसके लिए उप डोमेन है या सिर्फ एक वेबसाइट है
kennethjfalbous

बस एक ही वेबसाइट
साइमन ब्लैकबोरन

जवाबों:


1

आपका प्रश्न अपने आप से जवाब देने के लिए पर्याप्त जटिल है, लेकिन मैं आपको qTranslateप्लगइन स्थापित करने का सुझाव दूंगा । जैसा कि प्लगइन का विवरण कहता है:

अपने URL को सुंदर और एसईओ-अनुकूल बनाने के लिए 3 में से एक मोड चुनें। - हर जगह संगत; lang = en, सरल और सुंदर / en / foo / या अच्छा और साफ en.yoursite.com

तो आप प्लगइन के कोड का निरीक्षण करने की कोशिश कर सकते हैं और देख सकते हैं कि वे इसे कैसे करते हैं, या बस इसका उपयोग करें।


1
लिंक के लिए धन्यवाद, मैं एक बार देखने के लिए देखूंगा कि क्या मैं कोड को डिक्रिप्ट कर सकता हूं।
साइमन ब्लैकबोरन

-1

यह वह फ़िल्टर है जिसका मैं उपयोग कर रहा हूं:

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
कृपया अपने उत्तर में एक स्पष्टीकरण जोड़ें - धन्यवाद।
निकोलाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.