ID指定した複数カテゴリ全てに属する投稿記事を新着順リスト表示

カテゴリIDで指定した複数のカテゴリ全てに属する投稿記事を、投稿日が新しい順に、リスト表示するWordpress用PHPコード。カテゴリ名、投稿記事へのリンク付き投稿記事タイトルを出力する。

複数のカテゴリ全てに属する投稿記事を抽出するには、get_posts() 関数のカテゴリ引数の「category__and」に、カテゴリIDを配列で指定する。

サンプル・ソースコード

カテゴリIDが「1」と「2」と「3」の全てのカテゴリに属している投稿記事を、最大10件抽出し、順不同項目リスト表示する。

WordPress用PHPコード

<?php
global $post;
$tmp_post = $post;
?>
<ul>
<?php
$get_posts_args = array(
    'category__and' => array( 1, 2, 3 ),
    'numberposts' => 10,
    'order' => 'DESC',
    'orderby' => 'date'
);
$postslist = get_posts( $get_posts_args );
foreach ( $postslist as $post ) {
?>
    <li><a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?></a></li>
<?php
}
?>
</ul>
<?php
$post = $tmp_post;
?>

解説付き

<?php
global $post;
$tmp_post = $post; // このPHPコードを実行する前の記事データを退避。
?>
<ul>
<?php
$get_posts_args = array(
    'category__and' => array( 1, 2, 3 ), // カテゴリIDを配列で指定。
    'numberposts' => 10, // 取得する最大投稿記事数を指定。
    'order' => 'DESC',
    'orderby' => 'date'
);
$postslist = get_posts( $get_posts_args );
    // get_posts 関数で、投稿記事データを取得し、配列に格納。
foreach ( $postslist as $post ) {
    // 取得した投稿記事データを1つづつ表示。
?>
    <li><a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?></a></li>
<?php
}
?>
</ul>
<?php
$post = $tmp_post; // このPHPコードを実行する前の記事データを復活。
?>

出力例

下の表示例のように、投稿記事へのリンク付き投稿記事タイトルを、順不同項目リスト形式で出力する。

表示例

出力するHTML

<ul>
    <li><a href="投稿記事のパイパーリンク">投稿記事タイトル</a></li>
    <li><a href="投稿記事のパイパーリンク">投稿記事タイトル2</a></li>
    <li><a href="投稿記事のパイパーリンク">投稿記事タイトル3</a></li>
</ul>

スポンサード リンク

カテゴリー: WordPress, チュートリアル パーマリンク