2012-11-03 5 views
5

표준 (끌어다 놓기) WordPress 관리자 메뉴 기능을 통해 추가 한 몇 개의 메뉴 항목이있는 WordPress 메뉴가 있습니다. 최근에 동적 href 링크를 생성하는 메뉴에 다른 항목을 추가해야했습니다.WordPress 메뉴에 사용자 정의 메뉴 항목 추가하기

// 멤버 메뉴로 dynmacially 내 프로필 메뉴 항목을 추가 (

add_filter을 (현재 사용자가 로그인을 기반으로 사용자 이름을 생성) : 내 functions.php 파일에 다음 코드를 사용하는 것을 달성 'wp_nav_menu_items', 'add_profilelink_in_menu', 10, 2);

기능 add_profilelink_in_menu ($ 항목, $ 인수) {

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; 

}

내 문제는이 메뉴 항목은 메뉴의 끝과 같은 일반 워드 프레스 메뉴 클래스에 추가된다 'current-menu-item'이이 항목에 적용되지 않습니다. 이 메뉴 항목이 추가 된 위치를 제어 할 수있는 방법이 있습니까 (예 : 처음 두 항목 뒤에이 항목 추가)

이 동적으로 생성 된 메뉴 항목을 WordPress로 처리하려면 어떻게해야합니까? 일반 메뉴 항목을 추가하고 다른 메뉴 항목 (WordPress 메뉴 기능을 통해 생성)을 추가하는 모든 클래스를 추가합니까?

도움 주셔서 감사합니다.

+0

당신이 jQuery를 시도하고 싶은 insertBefore 기능을 사용할 수있어? – 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> 

를 사용하여 기반으로 할 수있는 논리는 또한

+0

정말 고마워요! 이것은 훌륭하다! – Dmitri

+0

jquery는 훌륭합니다! – loQ

+0

이것은 끔찍합니다. 여기에 JavaScript를 사용할 이유가 없습니다. –

0

테마 -> 메뉴에서 Wordpress 메뉴 옵션을 확인 했습니까? 거기에서 메뉴를 쉽게 추가 할 수 있습니다. 또한 사용자 정의 메뉴를 설정할 수 있습니다. 도움이 될 것입니다.

+0

감사합니다.하지만 문제는 메뉴 항목의 링크가 동적으로 생성되므로 테마 -> 메뉴에서 해당 기능을 허용하지 않는다는 것입니다. – Dmitri

+0

예 WordPress의 메뉴가 동적으로 생성되지만 사용자 지정 url 옵션 양식 admin면이있는 사용자 정의 메뉴를 만들뿐만 아니라 주문을 구성 할 수 있습니다. –

관련 문제