If you are ever looking for a quick and easy way to list all of the pages on your site that are published here is how I accomplished it. It uses the WordPress get_pages() function to then output the title and permalink if the post status is published.
//use [get_all_pages] to display list of pages on a page add_shortcode('get_all_pages','get_all_pages'); function get_all_pages() { /* if you wanted to limit it being output by IP address then put your IP address in the below line where the xxxx's are and also uncomment out the close bracket. */ //if ( $_SERVER['REMOTE_ADDR'] == 'xxxx' ) { $outputHtml = ''; $sites_pages = get_pages(); foreach ($sites_pages as $page_data) { $page_permalink = get_permalink($page_data->ID); if ($page_data->post_status == 'publish') $outputHtml .= $page_data->post_title . " - " . $page_permalink . "<br>"; } return $outputHtml; //} }