ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

指定カテゴリのみn件表示するループ(表示している記事は除く)@WordPress

指定したカテゴリへの投稿をn件表示するループです。

表示している記事は除きます。(よく見かける、投稿の最後にその投稿と同じカテゴリの他の投稿を表示する、あれです)

コード内にはカスタムフィールドで登録したアイキャッチ画像を出力する記述がありますが、そこはスルーしてください。

<?php
    $currentId = $post->ID; // 表示している記事を除外するため、当該記事のIDを取得
    $args = array(/* 配列に複数の引数を追加 */
    'category' => 2, /* カテゴリIDを指定、「category」での指定はget_posts()の場合、他の場合は「cat」 */
    'posts_per_page' => 5, /* 表示する件数 */
    'exclude' => $currentId // 表示している記事を除外
); ?>
<?php $my_posts = get_posts( $args ); ?><!-- クエリの指定 -->
<?php global $post;/* グローバル変数から値を取得 */
     foreach ( $my_posts as $post ) :/* $my_postsを$postへ代入 */
           setup_postdata( $post ); ?><!-- ここからループ開始処理 -->
            <div class="sidebar-unit">
                <h4><?php the_title(); ?></h4>
                <a href="<?php the_permalink(); ?>" class="image feature"><?php echo(types_render_field("eyecatch", array( "proportional" => "false", "width" => "400", "height" => "200"))); ?></a>
                <p><?php echo my_excerpt(90); ?></p>
                <footer>
                    <ul class="buttons">
                        <li><a href="#" class="button small">Read More</a></li>
                    </ul>
                </footer>
            </div>
    <?php endforeach; // end of the loop. ?><!-- ここまでサブループ。投稿がまだある場合は◯行目に戻る。endforeachに注意 -->
<?php wp_reset_postdata(); ?><!-- 忘れずにリセット -->

基礎からのWordPress (BASIC LESSON For Web Engineers)

基礎からのWordPress (BASIC LESSON For Web Engineers)