Obține ID-ul meniului folosind numele acestuia
26 iun. 2013, 12:33:41
Vizualizări: 27K
Voturi: 1
Am un meniu numit Social Network
. Vreau să obțin ID-ul meniului. Am încercat următoarea metodă, dar nu a funcționat.
global $wpdb;
$menu_slug = 'social-network';
$menu_id = $wpdb->get_results(
"
SELECT TERM_ID
FROM $wpdb->wp_terms
WHERE name = ".$menu_slug."
"
);
echo $menu_id;
Comentarii
Toate răspunsurile la întrebare
4
0
Puteți folosi funcția get_term_by și să utilizați 'name' în parametrul field.
<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>
Exemplu:
$term = get_term_by('name', 'Social Network', 'nav_menu');
$menu_id = $term->term_id;
Aici este linkul către pagina codex: http://codex.wordpress.org/Function_Reference/get_term_by
Sper că acest lucru vă ajută.

lucymtc
81
5 iun. 2014 14:38:37
0
Să scriem
Tot ce ai nevoie este get_terms()
Să scriem wp_menu_id_by_name( $name )
/**
* Obține ID-ul unui meniu după nume
*
* @param string $name Numele meniului
* @return int|boolean ID-ul meniului sau false dacă nu este găsit
*/
function wp_menu_id_by_name( $name ) {
$menus = get_terms( 'nav_menu' );
foreach ( $menus as $menu ) {
if( $name === $menu->name ) {
return $menu->term_id;
}
}
return false;
}
Să îl folosim
echo 'ID-ul meniului meu special este ' . wp_menu_id_by_name( 'My Special menu' );
// Afișează: ID-ul meniului meu special este 3

Nabil Kadimi
2.73K
23 mai 2014 01:42:39
0
Am folosit funcția wp_get_nav_menu_object
. Îi poți transmite un slug sau nume de meniu pentru a obține obiectul meniului și apoi poți accesa term_id
din acesta. Codex pentru wp_get_nav_menu_object.
$menu_obj = wp_get_nav_menu_object(MENU_SLUG);
$menu_id = $menu_obj ? $menu_obj->term_id : 0;

Oksana Romaniv
153
9 iul. 2020 13:21:40
0
Nu utilizați codul corect, folosiți acesta în schimb:
global $wpdb;
$tablename = $wpdb->prefix.'terms'; // utilizează întotdeauna prefixul tabelei
$menu_name = 'top-menu'; // numele meniului
$menu_id = $wpdb->get_results(
"
SELECT term_id
FROM ".$tablename."
WHERE name= '".$menu_name."'
"
);
// rezultatele într-un array
foreach($menu_id as $menu):
echo $menu->term_id;
endforeach;

Balas
621
26 iun. 2013 13:48:25
Întrebări similare
3
răspunsuri
2
răspunsuri