Php 循环内部内容单个

Php 循环内部内容单个,php,wordpress,Php,Wordpress,我尝试为用户构建一个选项,以突出显示在单个帖子底部的“相关帖子”,因此我将此代码放在“content single.php”的底部: 但在一些帖子中,我得到了8个不同的帖子,在一些帖子中我没有得到任何帖子(尽管我在post___in中只放了三个id)。 我想问题是我试图在主循环中循环。 我尝试了query\u posts和get\u posts,但都不起作用 任何帮助都将不胜感激 我认为这与缺少的post\u类型参数有关。但是,您需要在循环结构中进行一些更正: <div class="

我尝试为用户构建一个选项,以突出显示在单个帖子底部的“相关帖子”,因此我将此代码放在“content single.php”的底部:


但在一些帖子中,我得到了8个不同的帖子,在一些帖子中我没有得到任何帖子(尽管我在post___in中只放了三个id)。 我想问题是我试图在主循环中循环。 我尝试了
query\u posts
get\u posts
,但都不起作用


任何帮助都将不胜感激

我认为这与缺少的
post\u类型
参数有关。但是,您需要在循环结构中进行一些更正:

<div class="related-post">
<?php
    $args = array( 'post_type' => 'your_post_type', 'post__in' => array(38328, 38359, 21321) );
    $related_query = new WP_Query($args);
    if( $related_query->have_posts() ){ ?> 
    <div class="row"><?php
        while( $related_query->have_posts() ){ $related_query->the_post();?>
            <div class="col-sm-4"><?php
                if( has_post_thumbnail() ) the_post_thumbnail();
                the_title();?>
            </div><?php
        }
        wp_reset_postdata();?>
    </div><?php
    }?>
</div>

更新


请尝试将
'posts\u per_page'=>3
添加到
args
数组中。

我有一个解决此帖子的方法。希望你的查询帖子是错的

<div class="related-post">
<?php
$args = array( 
    'post_type' => 'your_post_type', 
    'post__in' => array(38328, 38359, 21321),
    'post_status'=>'publish'
    );
$related_query = new WP_Query( $args );
?>
<?php if ( $related_query->have_posts() ) : ?>
    <div class="row">
    <?php while ( $related_query->have_posts() ) : $related_query->the_post(); ?> 
    <div class="col-sm-4">   
    <!-- do stuff ... -->
    the_post_thumbnail();
    the_title();
    </div>
    <?php endwhile; ?>
    </div>
<?php endif;  wp_reset_postdata(); ?>
</div>  

_post_缩略图();
_title();
希望它能帮助您获取所需的输出。
确保您在中的post\u部分中提到的ID中有post。

好吧,我通过将此
'ignore\u sticky\u posts'=>1
添加到参数中来解决这个问题。谢谢@Pieter Goosen

你的
帖子类型是什么
?就在这行之后,
$related\u query=new WP\u query($args)
,添加
echo$相关查询->请求。这将打印生成的SQL查询。检查您的SQL查询是否以任何方式被更改。如果没有,则有东西正在向自定义查询中注入POST,如果您的SQL被更改,则说明您的过滤器不好。另外,请注意,默认情况下,粘性帖子包含在自定义的
WP\u查询中,因此添加
'ignore\u sticky\u posts'=>1
为了避免粘性帖子。我的帖子类型是post,我尝试添加此参数,但它不起作用。请用自己的代码替换提供的代码,因为它有一些问题。也尝试添加
'post\u status'=>'publish'
我输入了你的代码,但我仍然收到了更多的帖子,我也收到了帖子:38331、38321、38299、38247、38229。我得到38359两次。。。我确实在38359内部进行了测试。不知道为什么会发生这种情况。我们现在已经更新了,并且在一个页面中对我来说效果很好。我仍然从那个查询中收到8篇帖子,这怎么可能?
<div class="related-post">
<?php
$args = array( 
    'post_type' => 'your_post_type', 
    'post__in' => array(38328, 38359, 21321),
    'post_status'=>'publish'
    );
$related_query = new WP_Query( $args );
?>
<?php if ( $related_query->have_posts() ) : ?>
    <div class="row">
    <?php while ( $related_query->have_posts() ) : $related_query->the_post(); ?> 
    <div class="col-sm-4">   
    <!-- do stuff ... -->
    the_post_thumbnail();
    the_title();
    </div>
    <?php endwhile; ?>
    </div>
<?php endif;  wp_reset_postdata(); ?>
</div>