固定ページに指定したカテゴリのみのエントリ一覧を表示 wordpress3.7 ver.3

固定ページの内容と指定した(特定の)カテゴリの記事一覧(投稿一覧、更新日付き)を任意に指定できるテンプレートを作りました。

<?php
/**
 *
 * This is the template that displays selected category pages
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 */

/*
Template Name: My EntryList3
*/
?>

<?php
			/* Run the loop to output the posts.
			 * If you want to overload this in a child theme then include a file
			 * called loop-index.php and that will be used instead.
			 */
$my_date_format = get_option('date_format'); //設定で指定した日付書式を取得

global $post;

if(mb_strpos($post->post_content, '<!--listid') > 0) { //固定ページの前半出力
 echo apply_filters('the_content', mb_substr( $post->post_content, 0, mb_strpos($post->post_content, '<!--listid'))); }

$tmp_post = $post; //固定ページのデータを保存

$tmp_category = explode( ",", mb_substr( $post->post_content, mb_strpos($post->post_content, '<!--listid') + 10, mb_strpos($post->post_content, 'idend-->') - mb_strpos($post->post_content, '<!--listid') - 10));
$tmp_array = explode( ',', $tmp_category);
             ?>

<?php
$category_ids = $tmp_category; //array( '40','44' ); //カテゴリーIDを指定
$numberposts = '9999'; //一覧表示したい記事数を数字で指定
foreach ( $category_ids as $category_id ) {
?>
<h3><?php echo get_cat_name( $category_id ); ?></h3>
<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> <?php	echo date($my_date_format, strtotime($post->post_date)); ?></li>
  <?php
     }
?>
</ul>
<?php
 }
 $post = $tmp_post;
 ?>
 
 <?php if(mb_strpos($post->post_content, '<!--listid') > 0) { //固定ページの後半出力
 echo apply_filters('the_content', mb_substr( $post->post_content, mb_strpos($post->post_content, 'idend-->') + 8, mb_strlen($post->post_content) - mb_strpos($post->post_content, 'idend-->') - 8)); } ?>

 	 			</div><!-- #content -->
		</div><!-- #container -->

このファイルを拡張子PHPでテーマのフォルダにアップロードして、
固定ページでテンプレートを「My EntryList3」に変更して
本文中に
[code]<!–listid4idend–>[/code] を書くと(ここではカテゴリーに4を指定)
気になるニュース | デンジソウのようになります。


関連記事Similar Posts:

カテゴリー: サイト更新履歴 パーマリンク