2014-09-26 3 views
3

노르웨이어 menu_no과 영어 menu_en로 메뉴를 만들었습니다.어떻게 프로그래밍 방식으로 Wordpress에서 메뉴를 변경할 수 있습니까?

enter image description here

내 테마는 하나의 메뉴를 지원하는 것을 알 수 있습니다,하지만 난 한 번에 둘 이상의 메뉴를 사용하여 계획하고 있지 않다. 따라서 사용자가 영어를 선택하면 어떻게 활성 메뉴를 변경할 수 있습니까?

Google에서 아무 것도 발견하지 못했지만 nav-menu.php에서 올바른 기능을 찾을 수 없습니다.

업데이트
나는 내 문제에 대해 아주 간단한 해결책을 발견했습니다. 나는 단지 조금 다르게 생각해야했다.

global $lang; 

$args = array(
    'theme_location' => 'menu_'.$lang, 
    'container'   => false 
); 


<?php wp_nav_menu($args); ?> 

짜잔 :

add_action('init', 'register_menus'); 

function register_menus(){ 
    register_nav_menus(array(
     'menu_no' => 'Norwegian menu', 
     'menu_en' => 'English menu', 
    )); 
} 

header.php 파일에

나는이 코드를 사용 : 내 functions.php에서이 코드를 추가했습니다. 나중에 답변으로 게시하겠습니다. 다른 사람이 더 좋은 아이디어를 내놓지 않는 경우

+0

플러그인을 사용하고 있습니까? 플러그인에는 선택한 언어를 확인하는 데 사용할 수있는 기능이있을 수 있습니다. 그런 다음 템플릿의 해당 기능을 사용하여 관련 메뉴를 표시 할 수 있습니다. – Alex

+0

http://wordpress.stackexchange.com/questions/58164/assign-menus-to-theme-locations-with-theme-activation – davidcondrey

+0

qtranslate 플러그인을 사용하면 언어 변경시 메뉴의 언어가 자동으로 변경됩니다. –

답변

0

여기 어떻게 할 수 있습니다. 이 코드 과거

당신은 위의 코드를 사용자 정의 할 수 있습니다 파일을

// Register Navigation Menus 
function custom_navigation_menus() { 
$locations = array(
    'first_menu' => __('Menu for English language', 'text_domain'), 
    'second_menu' => __('Menu for Other Language', 'text_domain'), 
); 
register_nav_menus($locations); 

} 

// Hook into the 'init' action 

add_action('init', 'custom_navigation_menus'); 

을 function.php합니다. 이제 어디서나 당신은 다른 장소에서 각 메뉴를 표시 할 수 있습니다이

       <?php 
          wp_nav_menu(array(
           'menu'    => 'primary', 
           'theme_location' => 'first_menu', 
          ); 

          ?> 

          <?php 
          wp_nav_menu(array(
           'menu'    => 'secondary', 
           'theme_location' => 'second_menu', 
          ); 

          ?> 

처럼 원하는 wp_nav_menu 표시하는 기능을 사용할 수 있습니다. 이제 당신에게 메뉴 옵션 1 차 및 2 차

+0

'text_domain'은 무엇을위한 것입니까? * wp_nav_menu *는 사용할 메뉴를 어떻게 알 수 있습니까? 메뉴는 어디에서 만들었습니까? –

+0

text_domain : 선택 사항 인 테마 이름으로 대체 할 수 있습니다. wp_nav_menu : 코덱스에 대해 배울 수 있습니다. 선택한 theme_location 이름에서 알 수 있습니다. 그리고 마지막 질문 : generatewp.com을 사용하여 코드를 생성하지만 코드를 완전히 알고 있습니다. – Hujjat

관련 문제