WordPress のカスタム投稿の最新投稿一覧をサイドバーやトップページにのせる

普通の「最新投稿」と同じように自分のつくったカスタム投稿の「最新投稿」をサイドバーウィジェットなどに表示する方法。

  1. 下のコードを環境に合わせて書きかえる
  2. トップページであればコードを index.php に、サイドバーウィジェットであればコードを php のコード入力が可能になっているウィジェットに貼り付ける

結論

<ul>
<?php
    $posts = new WP_Query( array(
            'post_type' => 'animal',
            'posts_per_page' => 3
        )
    );
    if ( have_posts() ) : while ( $posts->have_posts() ) : $posts->the_post();
?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
<?php endwhile; endif; wp_reset_query(); ?>
</ul>

ここではカスタム投稿タイプを animal とした。

注意

query_posts( $args );
if( have_posts() ) :  while( have_posts() ) : the_post();

は推奨されない。

サイドバーウィジェットに貼り付けるときの注意

トップページであればコードを index.php にそのまま貼り付けるだけで表示されるが、サイドバーのウィジェットはデフォルトで php のコードを受けつけないようになっている。

実際、テキストウィジェットに上のコードを貼り付けても動作しない。

そこで「PHP Code Widget」というプラグインを使い、php 入力を受け付けるウィジェットをつくる。そのウィジェットに今回のコードを貼り付けると、そのウィジェットがカスタム投稿の一覧を表示してくれる。