カテゴリ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;
?>
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コードを実行する前の記事データを復活。
?>
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コードを実行する前の記事データを復活。
?>
出力例
下の表示例のように、カテゴリ別に、投稿記事へのリンク付き投稿記事タイトルを、順不同項目リスト形式で出力する。
表示例
カテゴリ名1
カテゴリ名2
カテゴリ名3
出力する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>
<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>