web-dev-qa-db-ja.com

現在の投稿IDを使用してWordPressで次の投稿サムネイル画像を表示する方法

私はwordpressのテーマを作る私はグリッド構造を作る私はこのグリッド構造を持っている以下のショーを作る

Grid Structure 

それは2行を含み、すべての行は私がこのグリッドに私のワードプレスのランダムな投稿を表示したい3つの列を持っています

これは私のコードです

               <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>

上のコードは同じ画像を繰り返します。最初の行には3列、最初の列には最新の画像があり、2番目の列には前の投稿の画像があります。あなたがより良い提案があるなら親切に私に言ってください

3

これは、元の質問のテンプレートレイアウトとコードです。私は wp_get_recent_posts を使用していますので、ランダムな投稿の場合はorderbyをRandに変更しないでください。

最初の投稿でrst-postpicrst-postinfoよりも多く使用されているので、私はあなたの答えを一貫性がなくコードの複製が多すぎることをチェックしました。 。

それが助けになり、あなたがさらに進むためのアイデアをあなたに与えることを願っています。

ハッピーコーディング!

<?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>
2
Webloper

最後に私は他の誰かが同じ問題を抱えているなら私の質問の解決策を見つけ、それからこれを使う

<?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 ?>

より良い提案が親切に投稿してくれれば私のコードでここに答えたり論理的な問題もしてくれたらそれから私にも教えてください

0