显示随机帖子,但忽略它所在的帖子?

时间:2013-05-08 作者:Jacob

我试图在一篇文章下面有一个部分,其中显示完全随机的文章。我让一切正常,但偶尔会有一个随机显示的帖子是它所在的实际帖子(单篇)。

这是我的代码:

<?php
$args = array( \'numberposts\' => 3, \'orderby\' => \'rand\' );
$rand_posts = get_posts( $args );
foreach( $rand_posts as $post ) : ?>
<?php endforeach; ?>
是否有任何方法不让它显示它所在的帖子?

非常感谢。

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

检查你是否有帖子ID(你应该在一个帖子页面上,但我不确定是否有)single.php 或其他模板,如index.php) 并将其添加到$args 如果你这样做了。

$args = array( \'numberposts\' => 3, \'orderby\' => \'rand\' );
if (is_singular() && isset($post->ID)) {
  $args[\'exclude\'] = array($post->ID);
}
$rand_posts = get_posts( $args );

参考

http://codex.wordpress.org/Function_Reference/is_singular
http://codex.wordpress.org/Template_Tags/get_posts
http://codex.wordpress.org/Function_Reference/get_pages

SO网友:Bryan Monzon

在这之前你可以跑步<?php print_r( $post ); ?> 如果它返回一个数组,那么可以添加一个参数\'exclude\' => $post->id,

删除print_r(); 测试后的功能。

结束

相关推荐

PRE_GET_POSTS:‘POST__NOT_IN’不适用于全局变量

我在试着设定一个post__not_in 使用全局$popular 变量,定义在index.php.-索引。php-$popular[] = 1 //post id=1 $popular[] = 2 //post id=2 $popular[] = 3 //post id=3 -功能。php-function modify_query_exclude_popular($query) { if ($query->is_main_query() &&am