Yes, it’s possible.
First of all you need a way to identify the page. there are different way to do it: by page slug, by page template…
I suggest you to create a fucntion that retrieve that page.
Let’s assume the contact page has a page template called 'page-contacts.php'
.
function get_contact_page() {
$args = array(
'number' => 1,
'meta_key' => '_wp_page_template',
'meta_value' => 'page-contacts.php'
);
$pages = get_pages($args);
return ! empty( $pages ) ? array_pop($pages) : FALSE;
}
If you want to use a different way to identify your page, change this function accordingly.
After that, create a function to add the menu item hooking admin_menu
:
function my_contact_page_menu() {
$page = get_contact_page();
if ( ! $page ) return;
global $menu;
$menu[] = array (
'Contact Page', // menu label
'manage_options', // capability
get_edit_post_link( $page->ID, '' ),
NULL,
'menu-top menu-icon-post',
);
}
add_action('admin_menu','my_contact_page_menu');