You can use the page_attributes_dropdown_pages_args filter to remove whatever you want. It’s based off of the wp_dropdown_pages() arguments so you can use the exclude
parameter to remove certain pages or a fake parent to remove all the pages:
/**
* Filter the arguments of Page Attributes Parent Dropdown
*
* @param Array $args - List of wp_dropdown_pages() arguments
* @param WP_Post Object $post - Current post object
*
* @retun Array $args - List of wp_dropdown_pages() arguments
*/
function admin_page_attributes_meta_filter( $args, $post ) {
$args['exclude'] = array( 1 ); // Exclude page ID 1 from the dropdown list
/*
* Uncomment to exclude all pages
* $args['child_of'] = -1;
*/
return $args;
}
add_filter( 'page_attributes_dropdown_pages_args', 'admin_page_attributes_meta_filter', 10, 2 );