Как перебрать пункты меню в WordPress? - PullRequest
0 голосов
/ 02 октября 2018

Я прочитал документы кода WordPress о том, как перебирать пункты меню, а затем я написал этот код в index.php:

<?php
    $menu_name = 'top_menu';
    $array_menu = wp_get_nav_menu_items($menu_name);
    foreach ((array)$array_menu as $mol) ;
    {
        echo $mol;
    }
?>

Но это не работает.И ничего не возвращает.Приведение к массиву не помогло.

Мне нужно выводить заголовок меню пунктов один за другим.без тегов списка HTML.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Это может помочь:

<?php  
function get_menu_items_by_registered_slug($menu_slug) {
    $menu_items = array();
    if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_slug ] ) ) {
        $menu = get_term( $locations[ $menu_slug ] );
        $menu_items = wp_get_nav_menu_items($menu->term_id);
    }
    return $menu_items;
}
$show_menus = [];
$menus = get_menu_items_by_registered_slug('primary');
foreach( $menus as $menu ) {
    $show_menus[] = $menu->title;
}

echo '<pre>';
print_r($show_menus);
?>
0 голосов
/ 02 октября 2018

$ navItem является объектом, поэтому вы не можете просто отобразить его, попробуйте отобразить его свойства следующим образом:

foreach ($array_menu as $navItem ) {

    echo '<li><a href="'.$navItem->url.'" title="'.$navItem->title.'">'.$navItem->title.'</a></li>';

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...