it-swarm.com.de

Bestimmen Sie, für welchen Themenort ein wp_get_nav_menu_items ist

Gibt es eine Möglichkeit zu bestimmen, für welche Themenplatzierung ein Menü bestimmt ist, wenn es mit dem Filter-Hook wp_get_nav_menu_items geändert wird?

Ich möchte nur Elemente zu bestimmten Menüs hinzufügen und möchte nicht von der ID oder dem Namen des Menüs abhängig sein.

3
Daniel A. White

Sie sind sich nicht sicher, ob dies das einfachste Mittel ist, aber Sie können den Filter nur dem Ort hinzufügen, den Sie über den wp_nav_menu_args-Filter ändern möchten, wenn wp_nav_menu aufgerufen wird. Entfernen Sie dann den Filter sofort, damit er nicht auf andere Menüs angewendet wird.

function wpa108544_nav_menu_args( $args ){
    // check if it's the location we want the filter applied to
    if( 'primary' == $args['theme_location'] )
        add_filter( 'wp_get_nav_menu_items', 'wpa108544_get_nav_menu_items', 10, 3 );

    return $args;
}
add_filter( 'wp_nav_menu_args', 'wpa108544_nav_menu_args' );


function wpa108544_get_nav_menu_items( $items, $menu, $args ){
    // remove the filter
    remove_filter( current_filter(), __FUNCTION__, 10, 3 );

    // do your menu manipulation stuff here
}
2
Milo