Directions
First – create a page in the wp admin. Then create a file like mypage.php. Save it in your theme and a the top of it, add this to tell wordpress that this is a custom page template:
<?php /* Template Name: Custompage */ get_header(); ?>
Note: it’ll also already call your header.
Then insert a custom loop using get_posts() like this:
<?php global $post; // required
$args = array('category' => 9); // include category 9
$custom_posts = get_posts($args);
foreach($custom_posts as $post) : setup_postdata($post);
// put here what you want to appear for each post like:
//the title:
the_title();
// an excerpt:
the_excerpt();
//and so on...
endforeach;
?>
Then last, get back to the admin and in your page’s options you should have a drop down menu in the “page attributes” box. Select the “Custompage” template or whatever name you gave it.
Resources:
https://wordpress.stackexchange.com/questions/45856/show-posts-of-category-in-a-page