Wordpress:循环播放交替的帖子类型并输出特色图片

时间:2016-11-01 11:11:24

标签: php wordpress for-loop

我有两种帖子类型,我想交替输出它们但没有使用很多循环,所以我发现this solution就是这样。

然而,这并不理想,因为我需要输出我发现无法使用此方法执行的_post_thumbnail(echo $smallPosts->posts[$i]->post_thumbnail;什么都不做)。另外我读过post_contentthe_content();不一样 - 后者是我想要使用的。

关于我如何循环交替的帖子类型并对输出有更多控制的任何建议,所以我可以使用the_post_thumnail等。

下面是我的代码,它可以正常工作但只是不能满足我的要求。

    <?php $args = array(
        'post_type' => 'small_post',
        'posts_per_page' => 3
      );
    $smallPosts = new WP_Query($args);

    $args = array(
        'post_type' => 'full_post',
        'posts_per_page' => 3
      );
    $fullPosts = new WP_Query($args);



     for ($i = 0; $i < 3; $i++) {
        if ($smallPosts->post_count > $i)

            echo $smallPosts->posts[$i]->post_title;
            echo '<br />';
            echo $smallPosts->posts[$i]->post_content;
            echo '<br />';

        if ($fullPosts->post_count > $i) 
            echo $fullPosts->posts[$i]->post_title;
            echo '<br />';
            echo $fullPosts->posts[$i]->post_content;
            echo '<br />';
       }    

    ?>

1 个答案:

答案 0 :(得分:0)

这是我的解决方案,它输出两种帖子类型并使用发布的时间可以交替使用the_thumbnail();和我需要的其他功能。另外,我使用if语句来添加类,因为不同的帖子类型需要以不同的方式设置。

                 <ul>                       
                    <?php

                        $args = array( 
                            'posts_per_page' => 10, 
                            'post_type' => (array('small_post','full_post')),
                            );
                        query_posts($args); ?>

                        <?php if ( have_posts() ) : ?>

                        <?php while ( have_posts() ) : the_post();  ?>
                            <?php if ( get_post_type( get_the_ID() ) == 'small_post' ) { ?>
                            <li class="article small-post" style="">
                                <?php if(has_post_thumbnail()) :?>
                                    <a href="<?php the_permalink(); ?>">
                                        <?php the_post_thumbnail(''); ?>
                                    </a>
                                <?php endif;?>
                                <a href="<?php the_permalink(); ?>">
                                    <h3>
                                        <?php the_title(); ?>
                                    </h3>
                                </a>
                                <p><?php the_excerpt(); ?></p> 
                            </li>
                        <?php } ?>      

                        <?php if ( get_post_type( get_the_ID() ) == 'full_post' ) { ?>
                            <li class="article full-post" style="">
                                <?php if(has_post_thumbnail()) :?>
                                    <a href="<?php the_permalink(); ?>">
                                        <?php the_post_thumbnail(''); ?>
                                    </a>
                                <?php endif;?>
                                <a href="<?php the_permalink(); ?>">
                                    <h3>
                                        <?php the_title(); ?>
                                    </h3>
                                </a>
                                <p><?php the_excerpt(); ?></p> 
                            </li>
                        <?php } ?>                      
                        <?php endwhile; ?>


            <?php wp_reset_postdata(); ?>

            <?php else : ?>
            <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
            <?php endif; ?>

           </ul>