固定ページで特定のカテゴリの新着情報表示

2013/03/17

特定のカテゴリの新着情報を表示しようとすると、、、

 

$posts = get_posts('numberposts=5 & category=10');
foreach($posts as $post) :
setup_postdata($post);

一旦、リスト出力して、 (上記の場合は、カテゴリ番号10の投稿を5件表示)

そして、そのリストを順番に表示させる。

<?php
echo mb_substr(get_the_excerpt(), 0, 32);//抜粋の文字数を設定
$title= mb_substr($post->post_title,0,18);//タイトルの文字数を設定
?>…<a href="<?php the_permalink() ?>">続きを読む</a>

 

  と、これを、固定ページで作成すると、、、表示が変!、、
というわけで、しかたなく、この固定ページのテンプレートを作成。 固定ページのテンプレート作成手順 

0317_01とりあえず、固定ページの新規作成で、目的の固定ページを作る。

本文は、適当に、、、

パーマリンクの設定がデフォルトであれば、この時点でページIDが表示されているので、確認する。

変更している場合は、、、

 
「固定ページ一覧」で目的のタイトルにマウスを乗せると最下部にpost=でID番号が表示されるので確認できる。

0317_02

このID番号で、テンプレートを用意する。
と言っても、コピーを作る。page.phpをコピーして、page-id番号.phpをテンプレートとして作成する。
ローカルのPCのテーマファイルの中の「page.php」をCtrl+Cでコピー、Ctrl+Vで貼り付けると「page - コピー.php」が出来るので、「F・2」でファイル名を「page-126.php」に変更して、アップロード。

コピーした時点では、内容は同じコードなので、内容を変更

[code] get_header(); ?>

<div id="container">
 <div id="content" role="main">

 <!---ここから--->
 <?php /* Run the loop to output the page. * If you want to overload this in a child theme then include a file * called loop-page.php and that will be used instead. */ get_template_part( 'loop', 'page' ); ?> 
<!---ここまでの間を編集、入れ替え--->

 </div><!-- #content -->
 </div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

 

通常では、投稿ページをループする部分(content内)を特定のカテゴリをリスト表示するものに書き換えることで、その固定ページの表示に。

この方法からすると、、、

投稿ページは、single.phpだから、single-ID番号.phpで特定の投稿ページのテンプレートにも対応できる。あまり意味のないことは、やめたほうがいいけど、、
自動成形で編集モードで開いてしまって、変わっては困るものなど、これでは変更できない。
固定ページの編集では、どんなに書き換えても、こちらのテンプレートが優先してしまうので、容易に書き換えられることが防げる点では、いいかも。