Since I don’t know the complete scope of the project I can only give a suggestion on what I would do.
Since you will be using a page for placing the 3 images with title and excerpt, I’d create a custom page template that has two loops. The first loop would use query_posts
to bring in the 3 images (title, and excerpt). I would then use a second loop to show the content of the page.
The part that would need some planning would be how to set up the first loop. If the 3 featured items can be randomly chosen from a given category you can simply use query_posts
to retrieve the posts. If not it will be a little bit more work.
If you have several different pages that will use this structure it would be best to use conditional tags so you won’t have to make a custom page for each category. I’ve put together a sample custom page to show you what I’m talking about. I haven’t tested it live, but I believe the code is correct. In the example I’m using 3 posts with a custom image and the excerpt for a brief bit of text from category 8 being the id. I’ve commented the code to explain some of the code:
<?php
/*
Template Name: Featured
*/
?>
<?php get_header(); ?>
<div class="inner">
<?php /** Use WP_Query instead of query_posts, Thanks to Chris_O for the heads up */ ?>
<?php
$custom_query = new WP_Query( 'posts_per_page=3&cat=8' );
while ( $custom_query->have_posts() ) : $custom_query->the_post();
?>
<div class="featured">
<?php
/**
* Here is where you bring in the 3 post from the category
* (with the id of 8 for this example)
*/
?>
<a href="https://wordpress.stackexchange.com/questions/57701/<?php the_permalink(); //Makes the image Link to the Full Post ?>">
<?php the_post_thumbnail(); // Gets The Posts Thumnail ?></a>
<h2>
<a href="<?php the_permalink(); //Gets the Title/Link to the post ?>">
<?php the_title(); ?></a>
</h2>
<?php the_excerpt(); // The excerpt can be customized for amount of text displayed ?>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<div class="wrapper">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="entry">
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<p class="postmetadata">Posted in <?php the_category(', ') ?> <strong>|</strong>
<?php edit_post_link( 'Edit','','<strong>|</strong>' ); ?>
<?php comments_popup_link( 'No Comments ➦', '1 Comment ➦', '% Comments ➦' ); ?>
</p>
</div><!-- End Entry -->
<?php endwhile; ?>
</div>
<?php else : ?>
<h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn't here.</p>
<?php endif; ?>
</div><!-- END POST -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Let me know if you need more help.
EDITED:
Changed the code to use WP_Query
per Chris_O’s advice.