如何使用当前帖子ID在WordPress中显示下一个帖子缩略图

时间:2015-10-01 作者:Hafiz Usman aftab

我做了一个wordpress主题,我做了一个网格结构,下面展示我有这个网格结构

Grid Structure

它包含两行,每行有三列我想在这个网格中显示我的wordpress随机帖子

这是我的密码

               <div class="row">
                     <div class="col-xs-12">
                         <div class="rst-mediagrid">
                                <div class="div">

                                                <?php $args = array(
                                                      \'posts_per_page\'   => 6,
                                                       \'offset\'           => 0,
                                                       \'category\'         => \'2\',
                                                       \'category_name\'    => \'\',
                                                       \'orderby\'          => \'date\',
                                                       \'include\'          => \'\',
                                                       \'exclude\'          => \'\',
                                                       \'meta_key\'         => \'\',
                                                       \'meta_value\'       => \'\',
                                                       \'post_type\'        => \'post\',
                                                       \'post_mime_type\'   => \'\',
                                                       \'post_parent\'      => \'\',
                                                       \'author\'    => \'\',
                                                       \'post_status\'      => \'publish\',
                                                       \'suppress_filters\' => true 
                                                );


                                                global $post;
                                                $post = get_post($args);

                                                $next_post = get_adjacent_post( true, \'\', false, \'taxonomy_slug\' ); 

                                              ?>


                            <div class="rst-col rst-col-50">
                                <div class="rst-postpic">
                                    <?php echo get_the_post_thumbnail($post->ID); //latest post thumbnail ?>
                                </div>
                            </div>
                                                        <?php //endif; ?>

                            <div class="rst-col rst-col-25">
                                <div class="rst-postpic rst-postvideo">

                                    <?php echo get_the_post_thumbnail($next_post->ID); ?>
                                </div>
                            </div>

                            <div class="rst-col rst-col-25">
                                <div class="rst-postpic">
                                    <?php echo get_the_post_thumbnail($next_post->ID); ?>
                                </div>
                            </div>

                            <div class="clear"></div>
                        </div>
                        <div class="div">
                            <div class="rst-col rst-col-25">
                                <div class="rst-postpic">
                                    <?php echo get_the_post_thumbnail($next_post->ID); ?>
                                </div>
                            </div>
                            <div class="rst-col rst-col-25">
                                <div class="rst-postpic rst-postvideo">
                                    <?php echo get_the_post_thumbnail($next_post->ID); ?>
                                </div>
                            </div>
                            <div class="rst-col rst-col-50">
                                <div class="rst-postpic">
                                    <?php echo get_the_post_thumbnail($next_post->ID); ?>
                                </div>
                            </div>
                            <div class="clear"></div>
                        </div>
                    </div>
                </div>
            </div>
上面的代码重复了相同的图像,我想按性能顺序显示缩略图,如第一行有三列,第一列有最新图像,第二列有上一篇文章的图像,第三列有上一篇文章的图像,第三列是上一篇文章的图像,平均是最新文章的第三篇文章,第二行也有相同的内容,如果你有更好的建议,请告诉我

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

这是您原始问题的模板布局和代码。我正在使用wp_get_recent_posts 由于它会根据您的需要提供类别中的最新帖子,如果不将orderby更改为rand以获得随机帖子,由于wp\\u get\\u recent\\u posts默认以数组形式返回帖子,您还可以选择将其随机排列。

我检查了你的答案,它不一致,而且你的第一篇文章使用了太多的代码复制rst-postpicrst-postinfo 以此类推,使用post type或一些元字段来确定post的类型,并根据该类型打印有关post的信息。

希望这对您有所帮助,并为您提供进一步的想法。

快乐的编码!

<?php
    $args = array(
         \'numberposts\' =>    6,
         \'category\'    =>    0,
         \'post_status\' =>    \'publish\',
         \'orderby\'     =>    \'post_date\',
    );
    $recent_post = wp_get_recent_posts( $args );

    //shuffle( $recent_post );    // Just for randomness
?>
<div class="row">
    <div class="col-xs-12">
        <div class="rst-mediagrid">
            <?php
                 foreach ($recent_post as $key => $value) {
                     $class_col_50    =   $key == 0 || $key == count( $recent_post ) - 1 ? \' rst-col-50\' : \' rst-col-25\';
                     $class_col_video =   $key % 3 == 1 ? \' rst-postvideo\' : \'\';

                     if ( $key % 3 === 0 )
                         echo \'<div class="div">\';

                     echo "<div class=\'rst-col$class\'>";
                         echo "<div class=\'rst-postpic$class_col_video\'>";
                             echo  $value[\'ID\'], \' \';
                         echo \'</div>\';
                     echo \'</div>\';

                     if ( $key % 3 === 2 )
                         echo \'<div class="clear"></div></div>\';
                 }
            ?>
        </div>
    </div>
</div>

SO网友:Hafiz Usman aftab

最后,我找到了我的问题的解决方案,如果其他人也有同样的问题,那么使用这个

<?php 

global $post;

$loop = new WP_Query( array( \'posts_per_page\' => 9,\'orderby\'=>rand) );
$posts = array();

while ( $loop->have_posts() ) : 

    $items = array();

    $items[\'link\']=wp_get_attachment_url( get_post_thumbnail_id( $post->ID ));
    $items[\'Image\'] = get_the_post_thumbnail($loop->the_post());
    $items[\'LinkPost\']=get_permalink($post->ID);               
    $items[\'Title\']=get_the_title($post->ID);
    $items[\'PostTime\']=get_the_time(\'M d,Y\', $post->ID);

    array_push($posts, $items);

endwhile;

for($i = 1; $i< count($posts); $i++){
    ?>

    <?php

    if($i==1){
    ?>
        <div class="div">
            <div class="rst-col rst-col-50">
                <div class="rst-postpic">
                    <a href="<?php echo $posts[$i][\'LinkPost\']; ?>">
                        <img src="<?php echo $posts[$i+1][\'link\']; ?>" alt="" style="height: 385px;width: 770px"/>
                    </a>
                </div>
                <div class="rst-postinfo">
                    <a href="#"><span>Sport</span></a>
                    <h6><a href="<?php echo $posts[$i][\'LinkPost\']; ?>"><?php echo $posts[$i][\'Title\']; ?></a></h6>
                    <time><i class="fa fa-clock-o"></i><?php echo $posts[$i][\'PostTime\']; ?></time>
                </div>
            </div>
    <?php //endif; ?>

            <div class="rst-col rst-col-25">
                <div class="rst-postpic rst-postvideo">
                    <a href="<?php echo $posts[$i+1][\'LinkPost\']; ?>">
                        <img src="<?php echo $posts[$i+2][\'link\']; ?>" alt="" style="height: 385px;width: 770px"/>
                    </a>
                </div>
                <div class="rst-postinfo">
                    <a href="#"><span>Sport</span></a>
                    <h6><a href="<?php echo $posts[$i+1][\'LinkPost\']; ?>"><?php echo $posts[$i+1][\'Title\']; ?></a></h6>
                    <time><i class="fa fa-clock-o"></i><?php echo $posts[$i+1][\'PostTime\']; ?></time>
                </div>
            </div>

            <div class="rst-col rst-col-25">
                <div class="rst-postpic">
                    <a href="<?php echo $posts[$i+2][\'LinkPost\']; ?>">
                        <img src="<?php echo $posts[$i+3][\'link\']; ?>" alt="" style="height: 385px;width: 770px"/>
                    </a>
                </div>
                <div class="rst-postinfo">
                    <a href="#"><span>Sport</span></a>
                    <h6><a href="<?php echo $posts[$i+2][\'LinkPost\']; ?>"><?php echo $posts[$i+2][\'Title\']; ?></a></h6>
                    <time><i class="fa fa-clock-o"></i><?php echo $posts[$i+2][\'PostTime\']; ?></time>
                </div>
            </div>

            <div class="clear"></div>

        </div><!-- end first row-->
    <?php } //end if ?>

    <?php
    if ($i == 2 ) {
    ?>

    <div class="div">
        <div class="rst-col rst-col-25">
            <div class="rst-postpic">
                <a href="<?php echo $posts[$i][\'LinkPost\']; ?>">
                    <img src="<?php echo $posts[$i+1][\'link\']; ?>" alt="" style="height: 385px;width: 770px"/>
                </a>
            </div>
            <div class="rst-postinfo">
                <a href="#"><span>Sport</span></a>
                <h6><a href="<?php echo $posts[$i][\'LinkPost\']; ?>"><?php echo $posts[$i][\'Title\']; ?></a></h6>
                <time><i class="fa fa-clock-o"></i><?php echo $posts[$i][\'PostTime\']; ?></time>
            </div>
        </div>

        <div class="rst-col rst-col-25">
            <div class="rst-postpic rst-postvideo">
                <a href="<?php echo $posts[$i+1][\'LinkPost\']; ?>">
                    <img src="<?php echo $posts[$i+2][\'link\']; ?>" alt="" style="height: 385px;width: 770px"/>
                </a>
            </div>
            <div class="rst-postinfo">
                <a href="#"><span>Sport</span></a>
                <h6><a href="<?php echo $posts[$i+1][\'LinkPost\']; ?>"><?php echo $posts[$i+1][\'Title\']; ?></a></h6>
                <time><i class="fa fa-clock-o"></i><?php echo $posts[$i+1][\'PostTime\']; ?></time>
            </div>
        </div>

        <div class="rst-col rst-col-50">
            <div class="rst-postpic">
                <a href="<?php echo $posts[$i+2][\'LinkPost\']; ?>">
                    <img src="<?php echo $posts[$i+3][\'link\']; ?>" alt="" style="height: 385px;width: 770px"/>
                </a>
            </div>
            <div class="rst-postinfo">
                <a href="#"><span>Sport</span></a>
                <h6><a href="<?php echo $posts[$i+2][\'LinkPost\']; ?>"><?php echo $posts[$i+2][\'Title\']; ?></a></h6>
                <time><i class="fa fa-clock-o"></i><?php echo $posts[$i+2][\'PostTime\']; ?></time>
            </div>
        </div>

        <div class="clear"></div>

    </div><!--end second row-->
    <?php

    }//end if

}//end for loop ?>
如果有更好的建议,请在这里张贴您的答案,以及我的代码中的任何逻辑问题,然后也告诉我

相关推荐

WordPress Themes and PHP unit

有没有将PHP单元测试与WordPress主题结合使用的例子,似乎很多关于这个主题的博客都过时了,因为核心单元测试是trac的一部分,然而昨天晚上,我拉了trac,试图设置一个示例主题来运行测试。它不能安静地工作,你必须运行所有的测试来测试你的主题,即使你尝试并需要一个文件-它试图在WordPress被实例化之前需要它,它会变得一团糟。无论如何,我知道有一个用于主题单元测试的插件,但它只是安装了大量“尝试”并破坏主题的帖子,并没有测试底层逻辑,尤其是在构建框架的情况下,php单元在这里是最好的,因为您可以