投稿、カスタム投稿タイプ、固定ページなどを自由に一覧表示する~WordPress覚書き~

WordPressを使っていくと、通常の投稿、カスタム投稿タイプ、固定ページなど色々増えていくと思います。それらの記事をトップページなどで一覧表示したい場合に、表示したいものだけを自由に一覧表示する方法です。
ググってみると「一覧表示したい投稿を指定して」表示する方法は結構あるんですが、逆に「一覧表示したくない投稿を除外して」表示する方法は見つからなかったので書いておきます。こうすることで、例えば、通常の投稿とカスタム投稿タイプのみを一覧表示したいといった場合に、新たにカスタム投稿タイプを追加した場合でも、その記事をきちんと拾ってくれます。

下記は、通常の投稿とカスタム投稿タイプの記事一覧を表示しています。

[sourcecode language=”php”]
<?php $post_types = get_post_types(array(‘public’ => true) );
unset($post_types[‘page’], $post_types[‘attachment’], $post_types[‘revision’], $post_types[‘nav_menu_item’]);

php query_posts( array( ‘post__not_in’ => get_option( ‘sticky_posts’ ), ‘paged’ => get_query_var( ‘paged’ ), ‘post_type’ => $post_types ) );
?>
[/sourcecode]

まず get_post_types で全てのポストタイプ(投稿の種類)を取得して、unset で一覧表示したくないポストタイプを除外します。それを query_posts にセット。
さらに、post__not_in で除外したい記事を選んでます。今回は sticky_posts(先頭に固定表示の記事)を除外しています。

以上、参考までに!