WordPress 投稿者別、タクソノミー別、カテゴリー別等、色々な記事一覧の取得方法

この記事は4年前に書かれました。不適当な記述を含む場合がありますので、参考程度に留めてください。

どうもこんばんは。今回のtipsは【Wordpress 投稿者別、タクソノミー別、カテゴリー別など、記事一覧の取得方法】に関してです。タイトルの都合上「など」で省きましたが以下の一覧取得方法をまとめます。自分が思い出せない時の為にメモとしてまとめておきます。

いろいろな記事一覧の取得

記事一覧の取得(通常)
記事一覧の取得(ランダム)
記事一覧の取得(古い順)
カテゴリー別記事一覧の取得
タクソノミー別記事一覧の取得
投稿者/著者を元にした記事一覧の取得
カスタムフィールド別記事一覧の取得
閲覧中記事と同カテゴリーの記事一覧

記事一覧の取得(通常)

いつものやつです。


<?php if(have_posts()):while(have_posts()):the_post(); ?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; endif; ?>

記事一覧の取得(ランダム)

ランダムのやつです。


<?php query_posts(‘showposts=10&orderby=rand’);?>
<?php if(have_posts()):while(have_posts()):the_post();?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile;endif;?>

記事一覧の取得(古い順)

古い順です。新着順はorderby=DESCに変更してください。


<?php query_posts(‘showposts=10&orderby=ASC’);?>
<?php if(have_posts()):while(have_posts()):the_post();?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile;endif;?>

カテゴリー別記事一覧の取得

以下の例ではカテゴリーID「1」の記事一覧を取得します。


<?php
$posts = get_posts(‘numberposts=10&category=1’);
global $post;
?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endforeach; endif;?>

タクソノミー別記事一覧の取得

以下の例では投稿タイプ”sample”の記事一覧を取得します。


<?php if ( have_posts() ) : query_posts(‘post_type=sample&posts_per_page=10&paged=’.$paged);?>
<?php while (have_posts()) : the_post(); ?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; endif; ?>

投稿者/著者を元にした記事一覧の取得

以下の例では投稿者ID「1」の記事一覧を取得します。


<?php if ( have_posts() ) : query_posts(‘posts_per_page=10&author=1&paged=’.$paged); ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; endif; ?>

カスタムフィールド別記事一覧の取得

カスタムフィールドのキー名「サンプル」の内容が「テスト」の記事一覧を取得します。


<?php
if ( have_posts() ) : query_posts(‘posts_per_page=10&meta_key=サンプル&meta_value=テスト&paged=’.$paged); ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; endif; ?>

閲覧中記事と同カテゴリーの記事一覧


<?php
$cat = get_the_category();
$catids = "";
foreach($cat as $catid){
$catids .= $catid->cat_ID.",";
}
$relposts = get_posts(‘orderby=rand&category=’.$catids.’&numberposts=10′);?>
<?php foreach($relposts as $post) : ?>
<?php the_time("n.j"); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endforeach; ?>

以上になります。