最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

simply loop through posts

programmeradmin1浏览0评论

I know this is a really newbie question, but I can't seem to get the loop to pull from the posts. all it is doing is pulling from the page itself.

I made a template and added the loop to it.

<?php
if( have_posts() ) {
  while( have_posts() ) {
    the_post();
    ?>
    <h2><?php the_title(); ?></h2>
    <?php
  }
}
?>

edit: here is all the code:

I know this is a really newbie question, but I can't seem to get the loop to pull from the posts. all it is doing is pulling from the page itself.

I made a template and added the loop to it.

<?php
if( have_posts() ) {
  while( have_posts() ) {
    the_post();
    ?>
    <h2><?php the_title(); ?></h2>
    <?php
  }
}
?>

edit: here is all the code: http://pastebin/k2rDu53b

Share Improve this question edited Dec 22, 2011 at 20:20 user766607 asked Dec 22, 2011 at 20:13 user766607user766607 951 gold badge1 silver badge5 bronze badges 6
  • If your code is itself running in the loop, you won't get expected results. Where is this snippet running? – brandwaffle Commented Dec 22, 2011 at 20:16
  • right after the body, I thought that was the loop, the have_posts...? a little confused. here is all the code:pastebin/k2rDu53b – user766607 Commented Dec 22, 2011 at 20:18
  • I meant if you were already in the loop, and then you had that code inside there...not what's happening anyway. What is the output you're seeing on the page? – brandwaffle Commented Dec 22, 2011 at 21:43
  • Just tested this on my local WP install and it's showing me post titles as I'd expect. Is this in your theme folder and is it running as the active theme, or is it being loaded some other way? If it's a theme, do you have a style.css sheet with at least the basic info defined there? codex.wordpress/Theme_Development#Template_Files_List – brandwaffle Commented Dec 22, 2011 at 21:57
  • Why all the header code in the template? Just call get_header() instead, if it needs to differ from the main header file, create another eg. header-two.php with the code and call that in the template instead, eg. get_header( 'two' ) – t31os Commented Dec 23, 2011 at 12:25
 |  Show 1 more comment

1 Answer 1

Reset to default 23

Because you're on a page, that's only going to display the query for that page. As such, you'd have to create a new query to bring in the posts you want. Replace your loop with this:

<?php
    $args = array(
        'post_type' => 'post'
    );

    $post_query = new WP_Query($args);

    if($post_query->have_posts() ) {
        while($post_query->have_posts() ) {
            $post_query->the_post();
            ?>
            <h2><?php the_title(); ?></h2>
            <?php
            }
        }
?>

Here some more information on the query: http://codex.wordpress/Class_Reference/WP_Query

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论