Как упоминает @vancoder, wp_get_nav_menu_items()это правильный путь, однако я думаю, что более подробный ответ будет более полезным для людей в будущем.
Упомянутая функция возвращает массив WP_Post Objectобъектов (поэтому вы получаете доступ к значениям со стрелкой, например $item->title).
Для базовой настройки вы можете использовать следующее:
$menuLocations = get_nav_menu_locations(); // Get our nav locations (set in our theme, usually functions.php)
// This returns an array of menu locations ([LOCATION_NAME] = MENU_ID);
$menuID = $menuLocations['primary']; // Get the *primary* menu ID
$primaryNav = wp_get_nav_menu_items($menuID); // Get the array of wp objects, the nav items for our queried location.
Затем вы можете просто зациклить эту $primaryNavпеременную, например:
foreach ( $primaryNav as $navItem ) {
echo '<li><a href="'.$navItem->url.'" title="'.$navItem->title.'">'.$navItem->title.'</a></li>';
}
Поделитесь ссылкой на этот ответ
Копировать ссылку
|
<?php
// mev.uabs.sumdu.edu.ua / httpdocs / wp-content / themes / UABS_SSU / template-parts / header / header-top-bar.php
$display_topbar = cactus_option('display_topbar');
if($display_topbar==1 || is_customize_preview() ):
$css_class = 'cactus-top-bar';
if( $display_topbar !=1 && is_customize_preview() )
$css_class .= ' hide';
?>
<div class="<?php echo $css_class; ?>">
<div class="cactus-f-microwidgets topbar_left_selective">
<?php if( is_customize_preview() ):?>
<span class="customize-partial-edit-shortcut customize-partial-edit-shortcut-topbar_left_selective"><button aria-label="<?php echo esc_html__( 'Click to edit this element.', 'cactus' );?>" title="<?php echo esc_html__( 'Click to edit this element.', 'cactus' );?>" class="customize-partial-edit-shortcut-button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z"></path></svg></button></span>
<?php endif;?>
<?php
$topbar_left = cactus_option('topbar_left');
if(is_array($topbar_left) && !empty($topbar_left)):
$html = "";
foreach($topbar_left as $item):
$html .= '<span class="cactus-microwidget">';
if($item['link']!=''){
$html .= '<a href="'.esc_url($item['link']).'" target="'.esc_attr($item['target']).'">';
}
if($item['icon']!=''){
$html .= '<i class="fa '.esc_attr($item['icon']).'"></i> ';
}
$html .= esc_attr($item['text']);
if($item['link']!=''){
$html .= '</a>';
}
$html .= '</span>';
endforeach;
echo $html;
endif;
?>
</div>
<div class="cactus-f-microwidgets ">
<div class="cactus-microwidget cactus-micronav cactus-micronav-list topbar_right_selective">
<?php if( is_customize_preview() ):?>
<span class="customize-partial-edit-shortcut customize-partial-edit-shortcut-topbar_right_selective"><button aria-label="<?php echo esc_html__( 'Click to edit this element.', 'cactus' );?>" title="<?php echo esc_html__( 'Click to edit this element.', 'cactus' );?>" class="customize-partial-edit-shortcut-button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z"></path></svg></button></span>
<?php endif;?>
<?php
$html = "";
// $html .= '<span class="cactus-microwidget ">';
global $primaryNav;
foreach ( $primaryNav as $navItem ) {
//s($navItem);
$html .= '<span class="cactus-microwidget "><a class="NEW-sds-item" href="'.$navItem->url.'" target="_blank">'.$navItem->title.'</a></span>';
}
echo $html;
// $html .= '</span>';
?>
<!-- SOCIAL WIDGET START -->
<!-- SOCIAL WIDGET END -->
<!-- WPML Switcher START -->
<?php
if ( function_exists('icl_object_id') ) {
?>
<div id="SDStudio-wpml-shortcode">
<?php echo do_shortcode( '[wpml_language_switcher type="list" flags=1 native=0 translated=0 ]' ); ?>
</div>
<?php
}
?>
<!-- WPML Switcher END -->
</div>
</div>
</div>
<?php endif;?>
<?php
// For registering Multiple Menus
function register_my_menus() {
register_nav_menus(
array(
'top-menu-1' => __( 'Top menu - 1' ),
'top-menu-2' => __( 'Top menu - 2' )
)
);
}
add_action( 'init', 'register_my_menus' );
$menuLocations = get_nav_menu_locations(); // Get our nav locations (set in our theme, usually functions.php)
// This returns an array of menu locations ([LOCATION_NAME] = MENU_ID);
$menuID = $menuLocations['top-menu-1']; // Get the *primary* menu ID
global $primaryNav;
$primaryNav = wp_get_nav_menu_items($menuID);