web-dev-qa-db-ja.com

Masonry内にサムネイルで最近の投稿を表示する

ページテンプレートで、私は最近の10の投稿を表示する必要があります。だから私は、wp_get_recent_postsをコーデックスの中で見つけた を使おうと試みました、それは私が目的のための適切なフックであると思います。ポストアーカイブを 石積み で表示するmy archive.phpでも問題ありません。最近の投稿でも同じことを達成したいだけです。これが私のコードのようなものです。

<?php 
/* 
Template Name: Recent Profiles 
*/          
get_header(); 
?>

<h1 class="page-title"><?php the_title(); ?></h1>    

<div id="content">
<div id="masonry">


<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<div class="item normal" data-order='1'><!--BEGIN .item --> 
<div <?php post_class(); ?> id="featured-<?php the_ID(); ?>"><!--BEGIN .hentry -->





<?php
    $args = array( 'numberposts' => '10' );
    $recent_posts = wp_get_recent_posts( $args );
    foreach( $recent_posts as $recent ) {
    if ( has_post_thumbnail($recent["ID"])) {    
        echo '<a href="' . get_permalink($recent["ID"]). '">';
        echo get_the_post_thumbnail($recent["ID"], 'archive_grid');
        echo '</a>';
    }
}
?>





</div><!--END .hentry-->  
</div><!--END .item -->

<?php endwhile; endif; ?>

<?php get_template_part('includes/index-loadmore'); ?>

</div><!--END #masonry -->
<div id="masonry-new"></div>

<!--BEGIN .post-navigation -->
        <div class="post-navigation clearfix">
            <?php dt_pagination(); ?>
        <!--END .post-navigation -->
        </div>

    </div><!-- #content -->

<?php get_footer(); ?>

問題:問題は、予想される10の代わりにコードが最近投稿されたサムネイルを1つ表示しているだけだということです。おそらくループに問題があります。 FYI archive_gridはカスタムサムネイルの名前です。

1
gurung

Meta_keyパラメータを追加して、画像セットを特集している最新の投稿を取得します。 $args = array( 'numberposts' => '10', 'meta_key' => '_thumbnail_id' );

<?php
/* 
Template Name: Recent Profiles 
*/
get_header();
?>
<h1 class="page-title"><?php the_title(); ?></h1>

    <div id="content">
        <div id="masonry">
            <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <div class="item normal" data-order='1'><!--BEGIN .item -->
                    <div <?php post_class(); ?> id="featured-<?php the_ID(); ?>"><!--BEGIN .hentry -->
                        <?php
                        $args = array( 'numberposts' => '10', 'meta_key' => '_thumbnail_id' );
                        $recent_posts = wp_get_recent_posts( $args );
                        foreach ( $recent_posts as $recent ) {
                            if ( has_post_thumbnail( $recent["ID"] ) ) {
                                echo '<a href="' . get_permalink( $recent["ID"] ) . '">';
                                echo get_the_post_thumbnail( $recent["ID"], 'archive_grid' );
                                echo '</a>';
                            }
                        }
                        ?>
                    </div>
                    <!--END .hentry-->
                </div><!--END .item -->
            <?php endwhile; endif; ?>
            <?php get_template_part( 'includes/index-loadmore' ); ?>
        </div>
        <!--END #masonry -->
        <div id="masonry-new"></div>
        <!--BEGIN .post-navigation -->
        <div class="post-navigation clearfix">
            <?php dt_pagination(); ?>
            <!--END .post-navigation -->
        </div>
    </div><!-- #content -->
<?php get_footer(); ?>
1
Subharanjan