programing

Wordpress에서 메뉴 값 가져오기

luckcodes 2023. 2. 11. 23:42

Wordpress에서 메뉴 값 가져오기

모두 다음 코드를 사용하여 생성된 모든 정의된 워드프레스 메뉴를 가져옵니다.

$menus = wp_get_nav_menus();

사용하고 싶은 메뉴 아이디는 알고 있습니다.메뉴 ID를 기준으로 해당 메뉴에 있는 페이지와 선택한 메뉴 ID를 기준으로 해당 네비게이션 라벨을 가져오고 싶습니다.제가 어떻게 하면 그렇게 할 수 있을까요?

사실 이걸 발견했어요

$menu_items = wp_get_nav_menu_items($options['menu_choice']);

이 예에서는 $options['menu_choice']가 선택된 메뉴 ID이지만, 실제로 원하는 것은 permalink 값을 지정하는 것입니다.이걸로 알 수 있을까요?

잘 부탁드립니다!

그게 바로 네가 원하는 거야

$menu_name = 'menu-id'; //e.g. primary-menu; $options['menu_choice'] in your case

if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
    $menu = wp_get_nav_menu_object($locations[$menu_name]);
    $menu_items = wp_get_nav_menu_items($menu->term_id);
}

$menu_items는 모든 메뉴 항목에 대한 모든 데이터를 포함하는 개체입니다.따라서 필요한 데이터를 검색할 수 있습니다.foreach고리.

foreach ($menu_items as $menu_item) {
    $id = $menu_item->ID;
    $title = $menu_item->title;
    $url = $menu_item->url;

    if ($parent_id = $menu_item->menu_item_parent) {
        //the element has a parent with id $parent_id, so you can build a hierarchically menu tree
    }
    else {
        //the element doesn't have a parent
    }
}

주문별 옵션 등 이 질문에 대한 더 흥미로운 정보는 공식 웹 사이트 http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items에서 찾을 수 있습니다.

를 사용하여 메뉴에서 각 항목의 제목과 URL에 액세스하려면wp_get_nav_menu_items()기능:

$menu_items = wp_get_nav_menu_items( $options['menu_choice'] );
foreach ( (array) $menu_items as $key => $menu_item ) {
    $title = $menu_item->title;
    $url = $menu_item->url;
}

특정 메뉴를 표시하시겠습니까?좀 더 간단한 기능을 사용하면 어떨까요?wp_nav_menu원하는 메뉴 ID 인수를 전달하시겠습니까?menu_id를 $menu_로 대체하기만 하면 됩니다.다음 예시의 ID:

<?php 
$menu_args = array('menu' => $menu_ID );
wp_nav_menu( $menu_args ); 
?> 

투고 ID 를 취득하려면 , 다음의 기능을 사용해 투고 ID 를 풀 할 필요가 있습니다.

$id = get_post_param ($menu_item->ID, '_menu_item_object_id', true).

그렇지 않으면 id는 워드프레스가 메뉴에 사용하는nav_menu 커스텀타입 포스트가 됩니다.$url과 동일한 goese로 get_permalink($id)를 사용하여 호출할 수 있습니다.

<pre> 
$menu_ID = '195'; // 195 is a menu id this id you can see 
http://example.com/wp-admin/nav-menus.php?action=edit&menu=195
$menu_args = array('menu' => $menu_ID );
wp_nav_menu( $menu_args );  
</pre>

언급URL : https://stackoverflow.com/questions/9709339/get-menu-values-from-wordpress