如何在不使用PHP循环的情况下单独显示第一个和第二个最近的帖子?

时间:2014-04-22 16:17:36

标签: php wordpress

我需要在不使用循环的情况下单独显示类别中的第一个和第二个最近的帖子。以下是我尝试过的; item1 div应该显示最新的,而item2 div应该显示最近的第二个。

  <div class = 'item item1'>
  <?php get_posts('numberposts=1&offset=1&category='); ?>
  <?php while (have_posts()) : the_post(); ?>
  <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><h3><?php the_title(); ?></h3></a>
  <?php endwhile;?>
    </div>

   <div class = 'item item2'>
  <?php get_posts('numberposts=2&offset=1&category='); ?>
  <?php while (have_posts()) : the_post(); ?>
  <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><h3><?php the_title(); ?></h3></a>
  <?php endwhile;?>
    </div>

2 个答案:

答案 0 :(得分:1)

这里有一个内置函数:wp_get_recent_posts()

使用以下参数:

<?php $args = array(
    'numberposts' => 10,
    'offset' => 0,
    'category' => 0,
    'orderby' => 'post_date',
    'order' => 'DESC',
    'include' => ,
    'exclude' => ,
    'meta_key' => ,
    'meta_value' =>,
    'post_type' => 'post',
    'post_status' => 'draft, publish, future, pending, private',
    'suppress_filters' => true );

    $recent_posts = wp_get_recent_posts( $args, ARRAY_A );
?>

示例:

<?php
    $args = array( 'numberposts' => '2' );
    $recent_posts = wp_get_recent_posts( $args );
    foreach( $recent_posts as $recent ){
        echo '<div><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" ><h3>' .   $recent["post_title"].'</h3></a></div>';
    }
?>

来源:https://codex.wordpress.org/Function_Reference/wp_get_recent_posts

答案 1 :(得分:0)

您可以使用get_posts检索两个帖子并将它们放在一个数组中,以便随时随地使用。