web-dev-qa-db-fra.com

Faire de la page un lien vers la première sous-page

J'aimerais créer automatiquement un lien entre une page parente et sa première sous-page, le cas échéant. Ainsi:

  • Parent 1 (/#subpage-1)
    • Sous-page 1 (/ # sous-page-1)
    • Sous-page 2 (/ # sous-page-2)
    • Sous-page 3 (/ # sous-page-3)
  • Parent 2 (/ parent-2)
  • Parent 3 (/ parent-3)

J'ai trouvé du code qui trouve tous les liens parent via un programme complexe de navigation (). De là, je ne suis pas sûr de savoir comment trouver l'URL du premier enfant. J'ai supposé que ce serait

$children_elements[0]->url

mais cela ne semble pas être le cas.

class Themeslug_Page_Navigation_Walker extends Walker_Nav_Menu {
    function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) {
        $id_field = $this->db_fields['id'];
        if ( !empty( $children_elements[ $element->$id_field ] ) ) {
            $element->url = "Where do I get the child URL?";
        }
        Walker_Nav_Menu::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
    }
}
1
Tom
class Themeslug_Page_Navigation_Walker extends Walker_Nav_Menu {
    function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) {
        $id_field = $this->db_fields['id'];
        if ( !empty( $children_elements[ $element->$id_field ] ) ) {
            $element->url = $children_elements[$element->$id_field][0]->url;
        }
        Walker_Nav_Menu::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
    }
}

Cela a fait le tour.

1
Tom