Colocando a lista gerada no menu suspenso no menu personalizado

Estou tentando adicionar categorias e autores automaticamente no menu personalizado conforme eles são criados (evitando ter que fazê-lo manualmente para cada um).

Eu modifiquei o código de Alex Mill e consegui exibir uma lista de elementos com as categorias no menu, mas o problema é que a lista de elementos está fora do ul do menu em si. Você pode ver o que quero dizer aqui .

E aqui está a minha versão do código:

// Front end only, don't hack on the settings page if ( ! is_admin() ) { // Hook in early to modify the menu // This is before the CSS "selected" classs are calculated add_filter( 'wp_get_nav_menu_items', 'replace_placeholder_nav_menu_item_with_latest_post', 10, 3 ); } // Replaces a custom URL placeholder with the URL to the latest post function replace_placeholder_nav_menu_item_with_latest_post( $items, $menu, $args ) { // Loop through the menu items looking for placeholder(s) foreach ( $items as $item ) { // Is this the placeholder we're looking for? if ( '#latestpost' != $item->url ) continue; // Get the categories $latestpost = wp_list_categories( array( 'orderby' => name, 'show_count' => 0, 'exclude' => 3, 'title_li' => "", ) ); if ( empty( $latestpost ) ) continue; // Replace the placeholder with the real URL $item->url = get_permalink( $latestpost[0]->ID ); } // Return the modified (or maybe unmodified) menu items array return $items; } 

Alguma idéia sobre como colocar esta lista gerada de elementos dentro do menu suspenso adequado (neste caso, TEST)?

Obrigado! Eric

Solutions Collecting From Web of "Colocando a lista gerada no menu suspenso no menu personalizado"

O problema é que a lista de elementos está fora do ul do menu em si.

Eu acho que parte do problema pode ser que wp_list_categories() está em echo -mode por padrão, então $latestpost está sempre vazio.

Experimente com estes parâmetros em vez disso:

 // Get the categories $latestpost = wp_list_categories( array( 'orderby' => name, 'show_count' => 0, 'exclude' => 3, 'title_li' => "", 'echo' => 0, ) ); 

Você pode ver os argumentos padrão de wp_list_categories() aqui no Codex.

O problema com seu exemplo de código é também que a saída de wp_list_categories() é uma string HTML, não uma matriz. Então, esta parte: $latestpost[0]->ID não tem significado quando $latestpost é uma string (vazia).