Cum obții ID-ul elementului current-menu-item?

7 iun. 2011, 00:20:39
Vizualizări: 27.1K
Voturi: 3

Încerc să obțin ID-ul elementului de meniu care are clasa numită "current-menu-item". Nu ID-ul paginii curente, ci ID-ul elementului din navigare.

Vă rog să mă ajutați

1
Comentarii

Am reușit odată să aflu titlul elementului curent din meniu, ar trebui să poți adapta codul pentru a returna ID-ul în loc de titlu.

Jan Fabry Jan Fabry
7 iun. 2011 01:04:12
Toate răspunsurile la întrebare 3
0

Poate un pic cam târziu, dar există încă o modalitate de a face asta:

$menu = wp_get_nav_menu_items($menu_id,array(
   'posts_per_page' => -1,
   'meta_key' => '_menu_item_object_id',
   'meta_value' => $post->ID // postul afișat în prezent
));

var_dump($menu[0]->ID);

Deoarece elementele de meniu sunt post-types, poți folosi toți parametrii WP-Query, chiar și o interogare meta. Codul de mai sus selectează toate elementele de meniu care sunt conectate la postul curent, din meniul specificat prin $menu_id.

23 nov. 2012 10:28:11
0

Acest lucru ar trebui să rezolve problema Cum să obții titlul current-menu-item ca variabilă?

dar schimbă

$GLOBALS['wpse16243_title'] = $menu_item->title;

în

$GLOBALS['wpse16243_title'] = $menu_item->ID;

și acum poți folosi variabila globală $wpse16243_title pentru a obține ID-ul

7 iun. 2011 12:15:26
3

Cea mai bună metodă ar fi să folosești filtrul nav_menu_css_class. Ceva de genul acesta ar funcționa:

function wpse19375_nav_class( $classes, $item ){
  if( !in_array( 'current-menu-item', $classes ) )
    return $classes;
  // $item este un obiect 'current-menu-item'.
  return $classes;
}

add_filter( 'nav_menu_css_class', 'wpse19375_nav_class', 10, 2 );
7 iun. 2011 00:53:08
Comentarii

mersi frate, dar nu înțeleg cum va aduce id-ul

Leroy Leroy
7 iun. 2011 12:08:51

Variabila $item este obiectul de meniu. Conține toate informațiile pe care le-ai putea dori, inclusiv ID-ul.

John P Bloch John P Bloch
7 iun. 2011 13:55:48

@John P Bloch, Dar cui returnezi $classes?

Steven Steven
15 aug. 2011 23:07:11