Current File : /home/pacjaorg/wpt.pacja.org/wp-content/themes/betheme/functions/theme-menu.php |
<?php
/**
* Menu functions.
*
* @package Betheme
* @author Muffin group
* @link http://muffingroup.com
*/
/**
* Registers a menu location to use with navigation menus.
*/
register_nav_menu( 'main-menu', __( 'Main Menu | depth 5 (Overlay | depth 1)', 'mfn-opts' ) );
register_nav_menu( 'secondary-menu', __( 'Secondary Menu | depth 2 (Split | depth 5)', 'mfn-opts' ) );
register_nav_menu( 'lang-menu', __( 'Languages Menu | depth 1', 'mfn-opts' ) );
register_nav_menu( 'social-menu', __( 'Social Menu Top | depth 1', 'mfn-opts' ) );
register_nav_menu( 'social-menu-bottom', __( 'Social Menu Bottom | depth 1', 'mfn-opts' ) );
register_nav_menu( 'skip-links-menu', __( 'Accessibility Skip Links Menu | depth 1', 'mfn-opts' ) );
/**
* Main Menu
*/
if( ! function_exists( 'mfn_wp_nav_menu' ) )
{
function mfn_wp_nav_menu()
{
$args = array(
'container' => false,
'menu_class' => 'menu menu-main',
'link_before' => '<span>',
'link_after' => '</span>',
'depth' => 5,
'mega_menu' => true,
'fallback_cb' => 'mfn_wp_page_menu',
);
if ( !empty($_GET['visual']) || ( isset($attr['vb']) && $attr['vb'] ) ){
unset($args['mega_menu']);
}
// split menu
if( in_array(mfn_header_style(), array( 'header-split', 'header-shop', 'header-split header-semi', 'header-below header-split' )) ){
mfn_wp_split_menu();
return true;
}
// mega menu | custom walker
$theme_disable = mfn_opts_get( 'theme-disable' );
if( ! isset( $theme_disable[ 'mega-menu' ] ) ){
$args['walker'] = new Walker_Nav_Menu_Mfn;
}
// custom menu
if( mfn_ID() && is_single() && get_post_type() == 'post' && $custom_menu = mfn_opts_get( 'blog-single-menu' ) ){
// theme options | single posts
$args['menu'] = $custom_menu;
} elseif( mfn_ID() && is_single() && get_post_type() == 'portfolio' && $custom_menu = mfn_opts_get( 'portfolio-single-menu' ) ){
// theme options | single portfolio
$args['menu'] = $custom_menu;
} elseif( $custom_menu = get_post_meta( mfn_ID(), 'mfn-post-menu', true ) ){
// page options | page
$args['menu'] = $custom_menu;
} else {
// default
$args['theme_location'] = 'main-menu';
}
echo '<nav id="menu" role="navigation" aria-expanded="false" aria-label="'. __('Main menu', 'betheme') .'">';
// main menu
wp_nav_menu( $args );
// custom mobile menu
mfn_wp_mobile_menu();
echo '</nav>';
}
}
if( ! function_exists( 'mfn_wp_page_menu' ) )
{
function mfn_wp_page_menu()
{
$args = array(
'title_li' => false,
'sort_column' => 'menu_order',
'depth' => 5,
);
echo '<ul class="menu page-menu" role="navigation" aria-expanded="false" aria-label="'. __('Main menu', 'betheme') .'">';
wp_list_pages( $args );
echo '</ul>';
}
}
/**
* Mobile Menu
*/
if( ! function_exists( 'mfn_wp_mobile_menu' ) )
{
function mfn_wp_mobile_menu()
{
if( $menu_ID = mfn_opts_get( 'mobile-menu' ) ){
$args = array(
'container' => false,
'menu_class' => 'menu menu-mobile',
'link_before' => '<span>',
'link_after' => '</span>',
'depth' => 5,
'menu' => intval( $menu_ID ),
);
wp_nav_menu( $args );
}
}
}
/**
* Split Menu
*/
if( ! function_exists( 'mfn_wp_split_menu' ) )
{
function mfn_wp_split_menu()
{
echo '<nav id="menu" role="navigation" aria-expanded="false" aria-label="'. __('Split Main menu', 'betheme') .'">';
// main menu left
$args = array(
'container' => false,
'menu_class' => 'menu menu-main menu_left',
'link_before' => '<span>',
'link_after' => '</span>',
'theme_location' => 'main-menu',
'depth' => 5,
'fallback_cb' => false,
'container_aria_label' => 'Split Menu Left Container',
);
// custom walker for mega menu
$theme_disable = mfn_opts_get( 'theme-disable' );
if( ! isset( $theme_disable[ 'mega-menu' ] ) ){
$args['walker'] = new Walker_Nav_Menu_Mfn;
}
wp_nav_menu( $args );
// main menu right
$args = array(
'container' => false,
'menu_class' => 'menu menu-main menu_right',
'link_before' => '<span>',
'link_after' => '</span>',
'theme_location' => 'secondary-menu',
'depth' => 5,
'fallback_cb' => false,
'container_aria_label' => 'Split Menu Right Container',
);
// custom walker for mega menu
$theme_disable = mfn_opts_get( 'theme-disable' );
if( ! isset( $theme_disable[ 'mega-menu' ] ) ){
$args['walker'] = new Walker_Nav_Menu_Mfn;
}
wp_nav_menu( $args );
// custom mobile menu
mfn_wp_mobile_menu();
echo '</nav>';
}
}
/**
* Overlay menu
*/
if( ! function_exists( 'mfn_wp_overlay_menu' ) )
{
function mfn_wp_overlay_menu()
{
$args = array(
'container' => false,
'menu_class' => 'menu overlay-menu',
'theme_location' => 'main-menu',
'depth' => 1,
'fallback_cb' => false,
);
// custom menu
if( mfn_ID() && is_single() && get_post_type() == 'post' && $custom_menu = mfn_opts_get( 'blog-single-menu' ) ){
// theme options | single posts
$args['menu'] = $custom_menu;
} elseif( mfn_ID() && is_single() && get_post_type() == 'portfolio' && $custom_menu = mfn_opts_get( 'portfolio-single-menu' ) ){
// theme options | single portfolio
$args['menu'] = $custom_menu;
} elseif( $custom_menu = get_post_meta( mfn_ID(), 'mfn-post-menu', true ) ){
// page options | page
$args['menu'] = $custom_menu;
} else {
// default
$args['theme_location'] = 'main-menu';
}
echo '<nav id="overlay-menu" role="navigation" aria-expanded="false" aria-label="'. __('Overlay Main menu', 'betheme') .'">';
// main menu
wp_nav_menu( $args );
// custom mobile menu
mfn_wp_mobile_menu();
echo '</nav>';
}
}
/**
* Secondary menu
*/
if( ! function_exists( 'mfn_wp_secondary_menu' ) )
{
function mfn_wp_secondary_menu()
{
$args = array(
'container' => 'nav',
'container_id' => 'secondary-menu',
'menu_class' => 'secondary-menu',
'theme_location' => 'secondary-menu',
'depth' => 2,
'fallback_cb' => false,
);
// split menu
if( in_array(mfn_header_style(), array( 'header-split', 'header-split header-semi', 'header-below header-split' )) ){
return false;
}
wp_nav_menu( $args );
}
}
/**
* Languages menu
*/
if( ! function_exists( 'mfn_wp_lang_menu' ) )
{
function mfn_wp_lang_menu()
{
$args = array(
'container' => false,
'fallback_cb' => false,
'menu_class' => 'wpml-lang-dropdown',
'theme_location' => 'lang-menu',
'depth' => 1,
);
wp_nav_menu( $args );
}
}
/**
* Social menu
*/
if( ! function_exists( 'mfn_wp_social_menu' ) )
{
function mfn_wp_social_menu()
{
$args = array(
'container' => 'nav',
'container_id' => 'social-menu',
'menu_class' => 'social-menu',
'theme_location' => 'social-menu',
'depth' => 1,
'fallback_cb' => false,
);
wp_nav_menu( $args );
}
}
if( ! function_exists( 'mfn_wp_social_menu_bottom' ) )
{
function mfn_wp_social_menu_bottom()
{
$args = array(
'container' => 'nav',
'container_id' => 'social-menu',
'menu_class' => 'social-menu',
'theme_location' => 'social-menu-bottom',
'depth' => 1,
'fallback_cb' => false,
);
wp_nav_menu( $args );
}
}
/**
* Accessibility
* Skip Links menu
*/
if( ! function_exists( 'mfn_wp_accessibility_skip_links' ) )
{
function mfn_wp_accessibility_skip_links()
{
$args = array(
'theme_location' => 'skip-links-menu',
'depth' => 1,
'fallback_cb' => false,
);
echo '<nav id="skip-links-menu" role="navigation" aria-label="'. __('Skip Links Menu', 'betheme') .'">';
wp_nav_menu( $args );
echo '</nav>';
}
}