ठीक है, मेरे पास अस्थायी समाधान है।
ये कदम हैं:
- ओपन
\wp-content\plugins\sitepress-multilingual-cms\inc\language-switcher.php
- जाओ कहीं लाइन , जहां
function wp_nav_menu_items_filter($items, $args){
पहले {
के बाद यह सही जोड़े के आसपास:
$tempitems = $items;
$tempitemsexplode = explode("\n", $tempitems);
$items = "";
$id = 2; //This is where widget will be located: example, if you want it to be at place 4, write 5
अधिकारसे पहलेइस जोड़ें:
$id = 2;
for ($i = 0; $i < $id; $i++){
$items .= $tempitemsexplode[$i];
}
for($i = 0; $i < count($tempitemsexplode); $i++){
If ($i == $id){
समारोह की तह तक और इससे पहले कि जाएँ:
}
return $items;
जोड़ें: }}
अब, return $items;
जोड़ें से पहले:
for ($i = $id; $i < count($tempitemsexplode); $i++){
$items .= $tempitemsexplode[$i];
}
आप यहाँ अटक हैं कि पूरे समारोह मेरे लिए लग रहा है कि कैसे:
function wp_nav_menu_items_filter($items, $args){
$tempitems = $items;
$tempitemsexplode = explode("\n", $tempitems);
$items = "";
global $sitepress_settings, $sitepress;
$current_language = $sitepress->get_current_language();
$default_language = $sitepress->get_default_language();
// menu can be passed as integer or object
if(isset($args->menu->term_id)) $args->menu = $args->menu->term_id;
$abs_menu_id = icl_object_id($args->menu, 'nav_menu', false, $default_language);
$settings_menu_id = icl_object_id($sitepress_settings[ 'menu_for_ls' ], 'nav_menu', false, $default_language);
$id = 2;
for ($i = 0; $i < $id; $i++){
$items .= $tempitemsexplode[$i];
}
for($i = 0; $i < count($tempitemsexplode); $i++){
If ($i == $id){
if ($abs_menu_id == $settings_menu_id || false === $abs_menu_id) {
$languages = $sitepress->get_ls_languages();
$items .= '<li class="menu-item menu-item-language menu-item-language-current">';
if(isset($args->before)){
$items .= $args->before;
}
$items .= '<a href="#" onclick="return false">';
if(isset($args->link_before)){
$items .= $args->link_before;
}
$language_name = '';
if ($sitepress_settings[ 'icl_lso_native_lang' ]) {
$language_name .= $languages[ $current_language ][ 'native_name' ];
}
if ($sitepress_settings[ 'icl_lso_display_lang' ] && $sitepress_settings[ 'icl_lso_native_lang' ]) {
$language_name .= ' (';
}
if ($sitepress_settings[ 'icl_lso_display_lang' ]) {
$language_name .= $languages[ $current_language ][ 'translated_name' ];
}
if ($sitepress_settings[ 'icl_lso_display_lang' ] && $sitepress_settings[ 'icl_lso_native_lang' ]) {
$language_name .= ')';
}
$alt_title_lang = esc_attr($language_name);
if($sitepress_settings['icl_lso_flags']){
$items .= '<img class="iclflag" src="' . $languages[ $current_language ][ 'country_flag_url' ] . '" width="18" height="12" alt="' . $alt_title_lang . '" title="' . esc_attr($language_name) . '" />';
}
$items .= $language_name;
if(isset($args->link_after)){
$items .= $args->link_after;
}
$items .= '</a>';
if(isset($args->after)){
$items .= $args->after;
}
unset($languages[ $current_language ]);
$sub_items = false;
$menu_is_vertical = !isset($sitepress_settings['icl_lang_sel_orientation']) || $sitepress_settings['icl_lang_sel_orientation'] == 'vertical';
if(!empty($languages)){
foreach($languages as $lang){
$sub_items .= '<li class="menu-item menu-item-language menu-item-language-current">';
$sub_items .= '<a href="'.$lang['url'].'">';
$language_name = '';
if ($sitepress_settings[ 'icl_lso_native_lang' ]) {
$language_name .= $lang[ 'native_name' ];
}
if ($sitepress_settings[ 'icl_lso_display_lang' ] && $sitepress_settings[ 'icl_lso_native_lang' ]) {
$language_name .= ' (';
}
if ($sitepress_settings[ 'icl_lso_display_lang' ]) {
$language_name .= $lang[ 'translated_name' ];
}
if ($sitepress_settings[ 'icl_lso_display_lang' ] && $sitepress_settings[ 'icl_lso_native_lang' ]) {
$language_name .= ')';
}
$alt_title_lang = esc_attr($language_name);
if($sitepress_settings['icl_lso_flags']){
$sub_items .= '<img class="iclflag" src="'.$lang['country_flag_url'].'" width="18" height="12" alt="'.$alt_title_lang.'" title="' . $alt_title_lang . '" />';
}
$sub_items .= $language_name;
$sub_items .= '</a>';
$sub_items .= '</li>';
}
if($sub_items && $menu_is_vertical) {
$sub_items = '<ul class="sub-menu submenu-languages">' . $sub_items . '</ul>';
}
}
if($menu_is_vertical) {
$items .= $sub_items;
$items .= '</li>';
} else {
$items .= '</li>';
$items .= $sub_items;
}
}
}
}
for ($i = $id; $i < count($tempitemsexplode); $i++){
$items .= $tempitemsexplode[$i];
}
return $items;
}
मैं यह आसान जहां विजेट को रखना चाहते बदलने के लिए बनाने की कोशिश करेंगे।
अगर आपको समस्याएं हैं तो टिप्पणी करें। सौभाग्य!
संपादित करें: स्पष्टीकरण यह संशोधित फ़ंक्शन क्या करता है।
यह फ़ंक्शन मेनू स्विचर को मेनू में जोड़ने के लिए उपयोग किया जाता है।
जब यह फ़ंक्शन कहा जाता है, तो हमारे पास $items
स्ट्रिंग है जिसमें सभी मेनू आइटम होते हैं।
मैंने सभी मेनू आइटम $items
से $tempitems
पर स्थानांतरित कर दिए हैं और खाली स्ट्रिंग के लिए $items
सेट करें।
क्यों? क्योंकि अब हम विजेट को पहले मेनू आइटम या कुछ मेनू आइटम्स के बीच सम्मिलित कर सकते हैं।
फिर हम $tempitems
स्ट्रिंग को विस्फोट करते हैं ताकि हम दूसरे ऑर्डर का उपयोग कर सकें।
जब आप अब $id
निर्दिष्ट करते हैं तो यह हमारा ऑफसेट बन जाता है।
और अब $id
की सहायता से पहले लूप में, हम $items
स्ट्रिंग खाली करने के लिए कुछ temp आइटम जोड़ते हैं, और फिर भाषा विजेट और अंत में शेष मेनू आइटम।
स्रोत
2015-11-15 19:15:55
दिलचस्प सवाल, उत्तर के साथ आगे देख रहे हैं: D – Fiido93
आप कस्टम पोस्ट प्रकार "ui_elements" या तो कैसे बनाते हैं और कार्यक्षमता को किसी पोस्ट से लिंक करते हैं। और फिर आप इसे मेनू में जोड़ते हैं। – xphan
मैं एक प्रीमेड टेम्पलेट का उपयोग कर रहा हूं। इसलिए मैं एक टेम्पलेट को वास्तव में जोड़/संशोधित नहीं कर सकता जैसा मैं चाहता हूं। और अगर मुझे मैन्युअल रूप से हेडर को संशोधित करने की पहुंच होगी, तो मेरा मेनू कोड में सही होगा। – Fredy31