Spezifisches Menü mit wp_nav_menu_items anvisieren

Hallo! Ich habe einen wp_loginout () zu meinem Header hinzugefügt, indem ich ein Snippet in meiner functions.php verwende:

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 .= '
  • '. $loginoutlink .'
  • '; return $items; }

    Die Sache ist, dass es den Login-Link in jedem meiner drei Menüs zeigt:

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

    Ich möchte den wp_nav_menu_items-Filter so ausrichten, dass er nur den Login-Link im primären Menü enthält. Ideen? Danke im Voraus

    Solutions Collecting From Web of "Spezifisches Menü mit wp_nav_menu_items anvisieren"

    Sehen Sie sich diese verwandte Frage an . Ich denke, in deinem Fall würdest du deinen Code in if( $args->theme_location == 'primary-menu' ) .

    Bitte ändern Sie Ihren Code mit dem folgenden Code. Sie haben vergessen, Bedingung hinzuzufügen, if ($args->theme_location == 'primary-menu') diese Bedingung überprüft, ob das Menü das primäre Menü ist oder nicht.

     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 .= '
  • ' . $loginoutlink . '
  • '; return $items; } } function register_main_menus() { register_nav_menus( array( 'primary-menu' => __( 'Primary Menu' ), 'secondary-menu' => __( 'Secondary Menu' ), 'footer-menu' => __( 'Footer Menu' ), ) ); };