WordPress implements a simple order functionality by default.

What's the common method, to retrieve the menu_order for the current post or page?

2 Answers 2


If you have the post with an $id:

$thispost = get_post($id);
$menu_order = $thispost->menu_order;

WordPress itself does not provide a function to get the menu_order, so you have to query the post-Object. If you are outside the loop, you can use the above function, however inside the loop you could also achieve this by:

global $post;
$menu_order = $post->menu_order;

The Menuorder is mainly used for Database Queries, as the Name says, do determine the Order of the output (if the menuorder is selected to be the order criteria).

  • It does not work properly for me, it gets menu order number only for children pages, while for parent pages it is always 0
    – Lovor
    Sep 7, 2020 at 19:45

You can try following code:

 get_post_field( 'menu_order', $post_id);

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .