2012-11-03 11 views
5

पर कस्टम मेनू आइटम जोड़ना मेरे पास एक वर्डप्रेस मेनू है जिसमें कुछ मेनू आइटम हैं जो मैंने मानक (ड्रैग और ड्रॉप) वर्डप्रेस एडमिन मेनू फीचर के माध्यम से जोड़े हैं। हाल ही में मुझे मेनू में एक और आइटम जोड़ना पड़ा जो गतिशील href लिंक उत्पन्न करता है। मैं हासिल मेरी functions.php फ़ाइल में निम्न कोड का उपयोग कर कि:वर्डप्रेस मेनू

// सदस्यों मेनू में dynmacially मेरी प्रोफ़ाइल मेनू आइटम जोड़ने ((पर वर्तमान उपयोगकर्ता में लॉग इन आधारित उपयोगकर्ता नाम उत्पन्न)

add_filter 'wp_nav_menu_items', 'add_profilelink_in_menu', 10, 2);

समारोह add_profilelink_in_menu ($ आइटम, $ args) {

if($args->theme_location == 'secondary') { 

global $current_user;    
     //converts user id to username   
     $user_info = get_userdata($current_user->ID); 

$items .='<li id="menu-item-2091" class="menu-item menu-item-2091"> 
<a href="https://www.mysite.com/members/' . $user_info->user_login .'">Profile</a> 
</li>'; 

    } 
    return $items; 

}

मेरे समस्या यह है कि है इस मेनू आइटम मेनू के अंत और नियमित रूप से वर्डप्रेस मेनू कक्षाएं ऐसे में जोड़ा जाता है क्योंकि 'वर्तमान-मेनू-आइटम' इस आइटम पर लागू नहीं होता है। क्या इस मेनू आइटम को कहां जोड़ा गया है, इस स्थिति को नियंत्रित करने का कोई तरीका है (उदाहरण के लिए: पहले आइटम के बाद इस आइटम को जोड़ें?)

और मैं इस गतिशील रूप से जेनरेट किए गए मेनू आइटम के इलाज के लिए वर्डप्रेस कैसे प्राप्त कर सकता हूं एक नियमित मेनू आइटम और यह उन सभी वर्गों को जोड़ता है जो इसे अन्य मेनू आइटम (वर्डप्रेस मेनू सुविधा के माध्यम से बनाया गया) जोड़ता है?

किसी भी मदद के लिए धन्यवाद।

+0

आप jQuery की कोशिश करना चाहते हैं का उपयोग कर सकते है? – loQ

+0

हाँ मैं – Dmitri

उत्तर

1

यहाँ तर्क है कि आप jQuery

//suppose your menu is this 
    <ul id="secondary_nav"> 
    <li id="li_unique_id_1"><a href="">menu 1</a></li> 
    <li id="li_unique_id_2"><a href="">menu 2</a></li> 
    <li id="li_unique_id_4"><a href="">menu 4</a></li> 
</ul> 

//the jquery workaround 
//place this in your footer 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> 
<script type='text/javascript'> 
$(function(){ 
    <?php 
    global $current_user;    
    //converts user id to username   
    $user_info = get_userdata($current_user->ID); 
    ?> 
    $("<li id='menu-item-2091' class='menu-item menu-item-209'><a href='https://www.mysite.com/members/<?php echo $user_info->user_login; ?>'>Profile</a></li>").insertAfter("#secondary_nav #li_unique_id_2");  
}); 
</script> 

का उपयोग कर सकते हैं के आधार पर आप यह भी insertBefore समारोह

+0

आपको बहुत बहुत धन्यवाद! ये जबरदस्त है! – Dmitri

+0

jquery शानदार है !! – loQ

+0

यह भयानक है। यहां जावास्क्रिप्ट का उपयोग करने का कोई कारण नहीं है। –

0

क्या आपने इसके लिए थीम-> मेनू में वर्डप्रेस मेनू विकल्प देखा था? आप वहां से आसानी से मेनू जोड़ सकते हैं, आप वहां से कस्टम मेनू भी सेट कर सकते हैं। उम्मीद है कि यह आपकी मदद करेगा।

+0

धन्यवाद कृपया धन्यवाद, लेकिन समस्या यह है कि मेनू आइटम का लिंक गतिशील रूप से उत्पन्न होता है ताकि वर्डप्रेस थीम-> मेनू उस कार्यक्षमता की अनुमति नहीं देता है। – Dmitri

+0

हाँ वर्डप्रेस मेनू गतिशील रूप से उत्पन्न होते हैं लेकिन आप वहां ऑर्डर कॉन्फ़िगर कर सकते हैं साथ ही कस्टम यूआरएल विकल्प फॉर्म एडमिन साइड के साथ कस्टम मेनू भी बना सकते हैं। –