I suggest you change code of your greenday_get_menu_from_pages()
function a little bit, just so that the results are not ordered by post_title
which is default for get_pages(), but ordered by menu_order
, which is what most “page ordering” plugins you have tested actually work with.
So here is one new line in your function:
function greenday_get_menu_from_pages() {
$args = array('sort_column' => 'menu_order');
$pages = get_pages($args);
if ( $pages ) {
foreach ($pages as $page) {
$output="<li><a href="" . get_page_link($page->ID) . '">' . $page->post_title . '</a></li>';
echo $output;
}
}
}
And then, you can install plugin such as Intuitive Custom Post Order, go to Settings > Intuitive CPO – set it up to be available for Pages as you can see on this screen:
And then, go to your Pages tab and simply drag and drop the entries there.
Side note: i’ve also removed the ampersand & for reference before your get_pages() call, not sure if that was any important, seemed rather obsolete to me.