Menu personalizado com a class Walker – o que os $ db_fields devem ser?

Estou tentando criar meu próprio menu personalizado usando a class Walker e no processo de tentar descobrir o que está acontecendo, eu estou tentando reproduzir o que wp_nav_menu () faz por padrão, então, eu tenho isso:

class My_Admin_Walker extends Walker { public $db_fields = array ('parent' => 'parent', 'id' => 'menu_id'); } function my_admin( ){ //$list = wp_nav_menu( array( 'walker' => new My_Admin_Walker() ));//produces no output //$list = wp_nav_menu();//outputs links to pages return $list; } my_admin(); 

Quando eu passo minha própria class wp_nav_menu para wp_nav_menu ela não produz saída. Então eu acho que preciso definir os $db_fields necessários para algo. O Walker diz:

O valor de cada chave deve ser o nome das propriedades do object que mantêm o ID do pai e o ID do item, respectivamente.

Mas estou preso em descobrir quais os $db_fields devem ser configurados, para produzir a saída padrão ou qualquer outra saída. Eu tentei nomes de campo no database wp, mas não tive sorte até agora. Onde eu procuro essas propriedades de object que está falando?

Obrigado por qualquer ajuda!

Solutions Collecting From Web of "Menu personalizado com a class Walker – o que os $ db_fields devem ser?"

Se você quiser criar seu próprio menu de navegação personalizado, você deve estender a class Walker_Nav_Menu , e não a class Walker .

Ao criar um walker de menu personalizado, os $db_fields devem ser o que a class Walker_Nav_Menu padrão tem:

 $db_fields = array ('parent' => 'menu_item_parent', 'id' => 'db_id'); 

Ao criar o link de navegação para um item de menu, o campo parent mapeia para o meta-campo de mensagem _menu_item_menu_item_parent se o item de menu tiver um pai.

O db_id mapeia para o ID da postagem do item do menu.

Confira wp_setup_nav_menu_item() para uma boa referência para entender melhor o que está acontecendo. https://developer.wordpress.org/reference/functions/wp_setup_nav_menu_item/