カテゴリIDで指定した複数カテゴリの投稿記事を新着順にリスト表示

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

サンプル・ソースコード

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

WordPress用PHPコード

<?php
global $post;
$tmp_post = $post;
$category_ids = array( '1', '2', '3' );
$numberposts = '10';
foreach ( $category_ids as $category_id ) {
?>
<h2><?php echo get_cat_name( $category_id ); ?></h2>
<ul>
<?php
    $postslist = get_posts( "category=$category_id&numberposts=$numberposts&order=DESC&orderby=date" );
    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コードを実行する前の記事データを退避。
$category_ids = array( '1', '2', '3' ); // カテゴリIDを配列で指定。
$numberposts = '10'; // 取得する最大投稿記事数を指定。
foreach ( $category_ids as $category_id ) { // 指定したカテゴリIDの数だけ繰り返す。
?>
<h2>
<?php
echo get_cat_name( $category_id );
    // get_cat_name 関数で、カテゴリーIDからカテゴリー名を取得し表示。
?>
</h2>
<ul>
<?php
    $postslist = get_posts( "category=$category_id&numberposts=$numberposts&order=DESC&orderby=date" );
        // 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

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

スポンサード リンク

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