Menú específico de segmentación con wp_nav_menu_items

2

Hey! He agregado un wp_loginout () a mi encabezado usando un fragmento de código en mi functions.php:

    add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {

        ob_start();
        wp_loginout('index.php');
        $loginoutlink = ob_get_contents();
        ob_end_clean();

        $items .= '<li>'. $loginoutlink .'</li>';

    return $items;
}

La cuestión es que muestra el enlace de inicio de sesión en cada uno de mis tres menús:

    function register_main_menus() {
   register_nav_menus(
      array(
         'primary-menu' => __( 'Primary Menu' ),
         'secondary-menu' => __( 'Secondary Menu' ),
         'footer-menu' => __( 'Footer Menu' ),
      )
   );
};

Me gustaría dirigir el filtro wp_nav_menu_items para incluir solo el enlace de inicio de sesión en el menú principal. Ideas? Gracias de antemano

    
pregunta Kasper Isager 13.03.2011 - 12:36

2 respuestas

6

Consulte este relacionado pregunta . Supongo que en su caso usted envolvería su código en if( $args->theme_location == 'primary-menu' ) .

    
respondido por el Philip Arthur Moore 13.03.2011 - 13:38
1

Por favor modifique su código con el siguiente código Olvidó agregar la condición if ($args->theme_location == 'primary-menu') esta condición compruebe si el menú es el menú principal o no.

add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
    if ($args->theme_location == 'primary-menu') {
        ob_start();
        wp_loginout('index.php');
        $loginoutlink = ob_get_contents();
        ob_end_clean();
        $items .= '<li>' . $loginoutlink . '</li>';
        return $items;
    }
}

function register_main_menus() {
   register_nav_menus(
      array(
         'primary-menu' => __( 'Primary Menu' ),
         'secondary-menu' => __( 'Secondary Menu' ),
         'footer-menu' => __( 'Footer Menu' ),
      )
   );
};
    
respondido por el Mr. HK 06.01.2017 - 10:56

Lea otras preguntas en las etiquetas