get_posts()显示所有的职位总是相同的标题
问题描述:
我想用这一段代码来显示特定类别的职位在一个WordPress网站的首页:get_posts()显示所有的职位总是相同的标题
<?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.
查询工作正常,并且正确地显示每个帖子的内容,但标题总是从最新的帖子之一。永久链接也是如此。我究竟做错了什么?
答
the_title()
显示当前职位/页活跃在循环的称号。 get_posts
进行独立查询,而不会影响您的主循环。使用
<?php echo $new->post_title; ?>
显示新闻项目的标题。
或者,它甚至会更好,应用正确的过滤器藏汉:
<?php echo apply_filters('the_title', $new->post_title); ?>
对于固定链接,使用
<?php echo get_permalink($new->ID); ?>
答
使用<?php echo get_the_title($new->ID);?>
的标题和你的循环 使用<?php echo get_permalink($new->ID); ?>
用于固定链接,你会得到你想要的结果。我无法弄清楚你想要做什么,但按照我的编辑它会解决你的问题。
+0
我试图在幻灯片中显示最新的帖子,并在标题中使用标题和摘录。所以,这个解决方案的工作,但我仍然不明白为什么在文档中的例子是不同的:http://codex.wordpress.org/Template_Tags/get_posts – Carlo 2014-10-04 10:05:11
至于我记得,'the_title()'应该在'loop'使用。这可能会引起误解,但使用“foreach”并不是WP定义为“循环”的东西。 – 2014-10-03 16:29:06
它可以是有意义的,但我直接从实例图克代码的文件中:http://codex.wordpress.org/Template_Tags/get_posts – Carlo 2014-10-03 16:42:53
也许有在此之前彼此循环。 尝试在'foreach'之前添加'wp_reset_postdata();'。 – 2014-10-03 16:44:26