If there isn’t already a home.php
template file in your theme, create one by copying index.php
as home.php
. Then edit it and somewhere at the top put the following:
query_posts(array('showposts' => 1));
Thread Starter
gallo
(@gallo)
thanks for the reply and the help filosofo.
i did as you said and it didn’t work. i believe i did it correctly. it actually ended up showing your code up at the top of the website. as in – you can see the actual code in the browser.
i copied the index.php file, renamed it home.php, and added your code to the very top. i tried a few other places too.
so, the home.php file looked like this:
query_posts(array('showposts' => 1));
<?php get_header(); ?>
<div id="blog">
<?php require_once (TEMPLATEPATH . '/navigation.php'); ?>
<div id="main">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permalink to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<h3><?php the_time('F jS, Y') ?></h3>
<?php the_content('Continue reading this entry »'); ?>
<p class="meta">
<span class="tags"><?php the_category(', ') ?></span> |
<span class="comments"><?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?></span>
<?php
if ('open' == $post->ping_status) :
?>
<?php
endif; ?>
<?php edit_post_link(' Edit','|',''); ?>
<?php endwhile; ?>
<ul class="postnav">
<li class="left"><?php next_posts_link('« Earlier Posts') ?> </li>
<li class="right"> <?php previous_posts_link('Later Posts »') ?></li>
</ul>
<?php else : ?>
<h2>Not Found</h2>
Sorry, but you are looking for something that just isn't here.
<?php include_once (TEMPLATEPATH . "/searchform.php"); ?>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
any further thoughts?
oh, i should also mention that in addition to seeing the code on the site, you could still see all of my posts on the front page as well.
thanks a lot for your help and anyone else that might have some insight.
p.s. – i left the index.php on the server as well. is that correct?
Change the first part to:
<?php
query_posts(array('showposts' => 1));
get_header(); ?>
Thread Starter
gallo
(@gallo)
thank you again.
that worked well, but only half way.
the front page it now exactly how i want it with just the most recent post.
however, when i click on “earlier posts” it brings me to another page with just the first post. an identical page. the URL is different, but the content is the same.
it brings me to this extention: website.com/?paged=2
that seems like the proper extension, but i’m not sure why it’s still the front page content wise.
any thoughts?
Thread Starter
gallo
(@gallo)
if it’s okay i have another question/comment for anyone with some insight..
after i get this to work i’m planning to have some more content under this “single recent post” on the front page. not just text, but some images as well. i’m not well versed in php at all so i’d want to use html and sadly i would use tables if possible.
so, perhaps, i’m better off turning the front page into a static page. and then putting the the “blog” on another page. and then putting the “single recent post” on the static front page. logistically, does that make more sense given my desired end result?
i’m realizing it may not be ideal for me to try and put more content onto the blog page that’s not blog content. does this make sense?
so, perhaps, i’m better off turning the front page into a static page. and then putting the the “blog” on another page. and then putting the “single recent post” on the static front page. logistically, does that make more sense given my desired end result?
In my opinion, this is the best way to go, because otherwise you’re going to run into some complicated paging issues.
Thread Starter
gallo
(@gallo)
ok, great. thanks. i’ll give that a try and post back if/when i have more questions if that’s alright. by the way i looked at your blog. very nice. also, i’m in boston too.
Thread Starter
gallo
(@gallo)
with otto’s help i’ve decided to create a separate page template and put the ‘recent post’ code inside that php template.
therefore, i have to do all of my coding for the rest of the page inside the php template.
my problem now is that although it is calling up the correct “most recent post” it is not calling up the title, date, or meta information. it’s just calling up my image and then the paragraph of text.
here’s my php page:
<?php
/*
Template Name: Home
*/
?>
<?php get_header(); ?>
<div id="blog">
<?php require_once (TEMPLATEPATH . '/navigation.php'); ?>
<div id="main">
<h2><?php the_title(); ?></h2>
<?php
query_posts(array('showposts' => 1));
get_header(); ?>
<?php
global $dlPageId;
$dlPageId = null;
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $dlPageId = $post->ID; ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
<?php edit_post_link('Edit this entry.', '', '
'); ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
perhaps i have to edit my query code?
You’re calling get_header twice. Try this:
<?php
/*
Template Name: Home
*/
?>
<?php get_header(); ?>
<div id="blog">
<?php require_once (TEMPLATEPATH . '/navigation.php'); ?>
<div id="main">
<h2><?php the_title(); ?></h2>
<?php query_posts('showposts=1');
global $dlPageId;
$dlPageId = null; ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $dlPageId = $post->ID; ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
<?php edit_post_link('Edit this entry.', '', ''); ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Thread Starter
gallo
(@gallo)
thank you lpstenu.
unfortunately that didn’t work either. still no post title, date, or meta info.
this is my work in progress if it helps:
http://bcmediaproductions.com/site/
Thread Starter
gallo
(@gallo)
ignore/delete this box. mistake.
Ah! Sorry, I was going after one of your problems, and not both 🙂
Basically you’ve just got the_content()
in there, but nothing else 🙂 So all WP knows is to show the post.
<?php
/*
Template Name: Home
*/
?>
<?php get_header(); ?>
<div id="blog">
<?php require_once (TEMPLATEPATH . '/navigation.php'); ?>
<div id="main">
<h2><?php the_title(); ?></h2>
<?php query_posts('showposts=1');
global $dlPageId;
$dlPageId = null; ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $dlPageId = $post->ID; ?>
<h2><?php the_title(); ?></a></h2>
<p class="postmetadata">Posted on <?php the_time('F jS, Y'); ?> at <?php the_time('g:i a'); ?> by <?php the_author_posts_link(); ?></p>
<?php the_content(); ?>
<?php endwhile; endif; ?>
<?php edit_post_link('Edit this entry.', '', ''); ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
You’ll need to figure out how you want the metadata and all to display, but there’s a start.
Thread Starter
gallo
(@gallo)
you’re great. thanks so much for the help.
every time i learn something new i realize other things i can figure out on my own, which i prefer. but, it’s really wonderful to have a place like this with such helpful people with some insight.
thanks very much.