Question

I am trying to use the orderby parameter in the get_children function as below:

$navigation = get_children(array(
  'post_parent' => $parent->ID,
  'orderby' => 'menu_order'
));

But it is having no effect on the result; it is still ordering by the default creation date.

Any ideas?

Was it helpful?

Solution

Are you sure you need this specific function? Documentation (both Codex and inline) is verrry confusing. And it supposedly fetches things like attachments, which probably aren't relevant for navigation...

Try this:

get_posts( array(
    'post_type' => 'page',
    'post_parent' => $parent->ID,
    'orderby' => 'menu_order'
) );

OTHER TIPS

The 'orderby' argument should work with get_children() because get_children() is really just a wrapper around get_posts() with a different set of defaults. The menu order refers to the Order specified in the Page Attributes meta box when editing a Page... not to the order you've sorted a custom menu into.

You can use the $args in get_children, but ensure you also specify the post ID that you want to retrieve children from, even if it is the current page children you want

get_children( array(
    'post_parent' => $post->ID,
    'orderby' => 'menu_order',
    'order' => 'ASC'
)); 
Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top