astra_primary_navigation_markup()
Site Title / Logo
Description
Source
File: inc/markup-extras.php
function astra_primary_navigation_markup() { $disable_primary_navigation = astra_get_option( 'disable-primary-nav' ); $custom_header_section = astra_get_option( 'header-main-rt-section' ); if ( $disable_primary_navigation ) { $display_outside = astra_get_option( 'header-display-outside-menu' ); if ( 'none' != $custom_header_section && ! $display_outside ) { echo '<div class="main-header-bar-navigation ast-flex-1 ast-header-custom-item ast-flex ast-justify-content-flex-end">'; /** * Fires before the Primary Header Menu navigation. * Disable Primary Menu is checked * Last Item in Menu is not 'none'. * Take Last Item in Menu outside is unchecked. * * @since 1.4.0 */ do_action( 'astra_main_header_custom_menu_item_before' ); echo astra_masthead_get_menu_items(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped /** * Fires after the Primary Header Menu navigation. * Disable Primary Menu is checked * Last Item in Menu is not 'none'. * Take Last Item in Menu outside is unchecked. * * @since 1.4.0 */ do_action( 'astra_main_header_custom_menu_item_after' ); echo '</div>'; } } else { $submenu_class = apply_filters( 'primary_submenu_border_class', ' submenu-with-border' ); // Menu Animation. $menu_animation = astra_get_option( 'header-main-submenu-container-animation' ); if ( ! empty( $menu_animation ) ) { $submenu_class .= ' astra-menu-animation-' . esc_attr( $menu_animation ) . ' '; } /** * Filter the classes(array) for Primary Menu (<ul>). * * @since 1.5.0 * @var Array */ $primary_menu_classes = apply_filters( 'astra_primary_menu_classes', array( 'main-header-menu', 'ast-nav-menu', 'ast-flex', 'ast-justify-content-flex-end', $submenu_class ) ); // Fallback Menu if primary menu not set. $fallback_menu_args = array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu', 'menu_class' => 'main-navigation', 'container' => 'div', 'before' => '<ul class="' . esc_attr( implode( ' ', $primary_menu_classes ) ) . '">', 'after' => '</ul>', 'walker' => new Astra_Walker_Page(), ); $items_wrap = '<nav '; $items_wrap .= astra_attr( 'site-navigation', array( 'id' => 'site-navigation', 'class' => 'ast-flex-grow-1 navigation-accessibility', 'aria-label' => esc_attr__( 'Site Navigation', 'astra' ), ) ); $items_wrap .= '>'; $items_wrap .= '<div class="main-navigation">'; $items_wrap .= '<ul id="%1$s" class="%2$s">%3$s</ul>'; $items_wrap .= '</div>'; $items_wrap .= '</nav>'; // Primary Menu. $primary_menu_args = array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu', 'menu_class' => esc_attr( implode( ' ', $primary_menu_classes ) ), 'container' => 'div', 'container_class' => 'main-header-bar-navigation', 'items_wrap' => $items_wrap, ); if ( has_nav_menu( 'primary' ) ) { // To add default alignment for navigation which can be added through any third party plugin. // Do not add any CSS from theme except header alignment. echo '<div ' . astra_attr( 'ast-main-header-bar-alignment' ) . '>'; wp_nav_menu( $primary_menu_args ); echo '</div>'; } else { echo '<div ' . astra_attr( 'ast-main-header-bar-alignment' ) . '>'; echo '<div class="main-header-bar-navigation ast-flex-1">'; echo '<nav '; echo astra_attr( 'site-navigation', array( 'id' => 'site-navigation', ) ); echo ' class="ast-flex-grow-1 navigation-accessibility" aria-label="' . esc_attr__( 'Site Navigation', 'astra' ) . '">'; wp_page_menu( $fallback_menu_args ); echo '</nav>'; echo '</div>'; echo '</div>'; } } }
Expand full source code Collapse full source code View on Trac
Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |