カテゴリ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;
?>
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コードを実行する前の記事データを復活。
?>
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>
<li><a href="投稿記事のパイパーリンク">投稿記事タイトル</a></li>
<li><a href="投稿記事のパイパーリンク">投稿記事タイトル2</a></li>
<li><a href="投稿記事のパイパーリンク">投稿記事タイトル3</a></li>
</ul>