I'm trying to write a template for a Wordpress site to use as a static front page (with some dynamic content). I've created the Page, and set it to use my 'Home' template (which is saved in frontpage.php
). This frontpage.php
file is identical to my page.php
file, used for displaying pages like 'About' and 'Contact'. However, when I go to my front page, it displays the content of all three pages: Home, About and Contact.
It seems like the Wordpress loop, which just gets the content of a single page on About and Contact, is getting the content of all pages when I visit Home. What could be causing this?
My page.php
looks like this:
<?php get_header(); ?>
<div id="content">
<?php while(have_posts()) : the_post() ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2 class="entry-title"><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div><!-- .entry-content -->
<?php edit_post_link('Edit', '<p>', '</p>'); ?>
</div><!-- #post-<?php the_ID(); ?> -->
<?php endwhile; ?>
</div><!-- #content -->
<?php get_footer(); ?>
[Using Wordpress 3.2.1.]
In the end, I couldn't figure out what was going wrong. What I've done is created a static page named Home, made a custom template for it in page-home.php
, and redirected index.php
to the Home page's URL like so:
<meta HTTP-EQUIV="REFRESH" content="0; url=<?php bloginfo('url'); ?>/home/">
It's not ideal, but it works perfectly well.
because you have the while loop, it displays all the pages, just before the while loop, change the following code to alter the query.
<?php get_header(); ?>
<div id="content">
<?php
query_posts('p=5');//substitute 5 with the front page id
while(have_posts()) : the_post() ?>
....the same...
hope it helps.
You might want to take a look in your Wordpress admin at "Settings -> Reading". By default, the homepage is a list of articles, you need to change this to a static page. Hope this might fixes your problem!
Example below of a Wordpress site I build which has a static page named Homepage
as frontpage: