The publish_page action is listed as deprecated.
You can use the ‘transition_post_status’ hook to check if a page was published.
function publish_page_interception( $new_status, $old_status, $post ) {
if ( ($new_status != $old_status) && ($post->post_status == 'publish') && ($post->post_type == 'page') ) {
if($post->post_parent > 0) {
//do stuff
}
}
}
add_action( 'transition_post_status', 'publish_page_interception', 10, 3 );
Look here for further info:
http://codex.wordpress.org/Post_Status_Transitions
Happy Coding,
Kuchenundkakao