WordPress

Inscreva-se em nosso canal no Youtube Daviwp

Como utilizar menus especificos em page.php

31/07/2014 WordPress (0) comentário

Olá meus amigos! Mais um post fresco, esse código serve para quem esta usando template page.php e precisa em cada pagina buscar um menu especifico na sidebar, veja abaixo como utilizar, qualquer duvida mande comentários.

01 – Com os seus menus já criados precisamos dentro do nosso functions.php inserir a seguinte função
ela é responsável de consultar nosso menu e ID para diferenciar corretamente dentro da nossa page.php um menu de cada pagina.

/**
 * Check if post is in a menu
 *
 * @param $menu menu name, id, or slug
 * @param $object_id int post object id of page
 * @return bool true if object is in menu
 */
function cms_is_in_menu( $menu = null, $object_id = null ) {
 
    // get menu object
    $menu_object = wp_get_nav_menu_items( esc_attr( $menu ) );
 
    // stop if there isn't a menu
    if( ! $menu_object )
        return false;
 
    // get the object_id field out of the menu object
    $menu_items = wp_list_pluck( $menu_object, 'object_id' );
 
    // use the current post if object_id is not specified
    if( !$object_id ) {
        global $post;
        $object_id = get_queried_object_id();
    }
 
    // test if the specified page is in the menu or not. return true or false.
    return in_array( (int) $object_id, $menu_items );
 
}

02 – Agora vamos verificar nosso menu na page.php veja como ficaria, esse if cms_is_in_menu verifica se nosso menu e ID é o mesmo de menu_institucional se for ele exibe nosso menu especifico abaixo, e ai vc vai criando um para cada menu que vc deseja listar em sua page.php

<?php if( cms_is_in_menu( 'menu_institucional' ) ): ?>
					<?php   
						$args = array(
							'theme_location' => 'menu_institucional',
							'menu_class' => 'menu-internas',
						);
 
						wp_nav_menu( $args ); ?>
 
				<?php endif; ?>

Abraço e até aproxima!

Fote: https://wordpress.stackexchange.com/questions/75607/check-if-page-is-in-a-certain-menu

daviwp

Meu nome é Davi Alves desenvolvedor web e WordPress developer, residente de Belo Horizonte, sou um dos organizadores do WordCamp evento oficial do WordPress em BH e co-fundador do Belo Horizonte WordPress Group juntamente com o fundador Mateus Neves, sou articulista de alguns sites, e fundador do daviwp.com, aqui compartilho conhecimentos para toda galera aficionada em WordPress.