get_posts()显示所有帖子的相同标题

时间:2014-10-03 16:21:21

标签: php wordpress

我试图使用以下代码在Wordpress网站的主页上显示特定类别的帖子:

    <?php $args = array('category' => 2);
            $news = get_posts($args);

            foreach ($news as $new) : setup_postdata($new); ?>

            <img data-slidecaption="<div class='caption'><h2><?php  the_title(); ?></h2><p><?php the_excerpt(); ?></p><a href='<?php the_permalink(); ?>'>Leggi tutto</a></div>" src="">
    <?php endforeach; 
    wp_reset_postdata();?>
    </div>

例如,我有三个标题帖:帖子1,帖子2,帖子3。

查询工作正常,每个帖子的内容都正确显示,但标题始终是最新帖子中的标题。永久链接也是如此。我做错了什么?

2 个答案:

答案 0 :(得分:2)

the_title()显示循环中当前帖子/页面的标题。 get_posts进行独立查询,不会影响主循环。使用

<?php echo $new->post_title; ?>

显示新闻项目的标题。

或者,应用正确的过滤器会更好:

<?php echo apply_filters( 'the_title', $new->post_title ); ?>

对于永久链接,请使用

<?php echo get_permalink( $new->ID ); ?>

答案 1 :(得分:2)

使用<?php echo get_the_title($new->ID);?>作为标题和 在循环中使用<?php echo get_permalink($new->ID); ?>永久链接,您将获得所需的结果。我无法弄清楚你要做什么,但按照我的编辑,它将解决你的问题。