从WP_QUERY中拉取单个帖子

时间:2018-12-30 作者:FarhadD

我试图运行一个WP_查询,然后将从该查询中提取的3篇帖子中的每一篇放到模板中格式不同的div中。然而,当下面的代码运行时,我最终得到的第一篇帖子只显示在所有3个div块中。

我怀疑$cases1->the\\u post[0]没有按我所希望的方式工作,但我不太清楚如何做到这一点。请对WP codex有更好理解的人给我指出正确的方向好吗?

<?php $postid = array(get_the_ID()); ?>
<?php if ( get_post_type() == \'case_study\' ) {
   $argsCS = array (
   \'post_type\' => \'case_study\',
   \'posts_per_page\' => 3,
   \'orderby\' => \'desc\',
   \'post__not_in\' => $postid
   );
   $cases1 = new WP_Query($argsCS); if ($cases1->have_posts()) : 
?>
    <div id="side-1" class="column column-6-12">
        <div class="nw">
                <?php $cases1->the_post[0]; ?>
                <?php include(TEMPLATEPATH."/load-posts-sidebar.php"); ?>
         </div>
    </div><!-- columns-6-12 -->
    <div id="side-2" class="column column-6-12">
        <div class="wp">
            <?php $cases1->the_post[1]; ?>
            <?php include(TEMPLATEPATH."/load-posts-sidebar.php"); ?>
        </div>
        <div class="cs botMargin10">
            <?php $cases1->the_post[2]; ?>
            <?php include(TEMPLATEPATH."/load-posts-sidebar.php"); ?>
        </div>
    </div>
另外,$postid=数组(get\\u the\\u ID());似乎正在设置在3个分区中每个分区中显示的帖子的ID,而不是阻止该帖子显示!

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

关但是你不能自己编语法;)

<?php $postid = array(get_the_ID()); ?>
<?php if ( get_post_type() == \'case_study\' ) {
   $argsCS = array (
   \'post_type\' => \'case_study\',
   \'posts_per_page\' => 3,
   \'orderby\' => \'desc\',
   \'post__not_in\' => $postid
   );
   $cases1 = new WP_Query($argsCS); if ($cases1->have_posts()) : 
?>
    <div id="side-1" class="column column-6-12">
        <?php if ( $cases1->have_posts() : $cases1->the_post(); ?>
        <div class="nw">
                <?php include(TEMPLATEPATH."/load-posts-sidebar.php"); ?>
        </div>
        <?php endif; ?>
    </div><!-- columns-6-12 -->
    <div id="side-2" class="column column-6-12">
        <?php if ( $cases1->have_posts() : $cases1->the_post(); ?>
        <div class="wp">
            <?php include(TEMPLATEPATH."/load-posts-sidebar.php"); ?>
        </div>
        <?php endif; ?>
        <?php if ( $cases1->have_posts() : $cases1->the_post(); ?>
        <div class="cs botMargin10">
            <?php include(TEMPLATEPATH."/load-posts-sidebar.php"); ?>
        </div>
         <?php endif; ?>
    </div>
另外,您不应该在模板中使用include-而是使用get\\u template\\u part()。