新着一覧ページ(更新履歴)をページング有りで固定ページに表示

下記参照サイトを元にホームに新着一覧をカテゴリー付きで任意の件数表示させることができました。 ありがとうございます<(_ _)>
どや!?WordPressでのサイト制作を簡単にしてくれる魔法のコード

すると「昔の更新情報が見れないじゃないか」という文句要望が発生した。えーとかあーとかブツブツ言いながら何とか対応したメモ。

上記サイトのコードを元に奮闘したがうまく変数とかパラメータ追加とか何も見ずさらっとできないところが切り張りコードでしのぐweb屋のつらいところ。
ページングができなかった。(泣ける)

query_posts使った場合のやり方は今までもやったことがあったのでその方向で固定ページに表示できるよう下記のコードを履歴用固定ページテンプレに貼り付けて表示することができた。

ループをもっと勉強しなければ…

    下記コードで次のことを出力できた。
  • 日付を表示
  • 普通の投稿記事とカスタム投稿タイプ「products」記事を1ページに30件表示
  • 通常カテゴリとタクソノミー「bunrui」を日付の次に表示(アーカイブへリンク)
  • 記事タイトルを表示(記事へリンク)
  • タイトル後ろに記事公開から1週間は「new」ボタンを表示
  • ページング有り(今回はfunctionファイルへ仕込み済み)
<div id="Newspage">
	<dl>
<?php
		$post_type = array('post','products');
		$taxonomy = array('category','bunrui');

		$args = array(
			'post_type' => $post_type,
			'orderby' => 'date',
			'order' => 'DESC',
			'paged' => get_query_var('paged'),
			'showposts' => 30,
			'posts_per_page' => 30,
	);
?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
		<dt class="date"><?php the_time('Y年m月d日'); ?></dt>
	<?php
		$terms = get_the_terms( $post->ID, $taxonomy );
		if ( $terms && ! is_wp_error( $terms ) ) :
		$draught_links = array();
		foreach ( $terms as $term ) {
		echo '<dd class="cate"><a class="' . $term->slug . '" href="' . home_url( '/archives/' ) . $term->taxonomy .'/'. $term->slug . '" title="' . $term->name . 'の記事一覧を見る">' . $term->name . '</a></dd>';
		}
		endif;
	?>
		<dd class="naiyo"><a href="<?php the_permalink();?>"><?php the_title(); ?></a> 
	<?php
		$hour = 168;
		$html = '<span><img src="' . get_bloginfo('template_url') . '/images/ico_new.png" alt="New" /></span>';
		$current_date = date('U'); $entry_date = get_the_time('U');
		$min = ceil(date('U',($current_date - $entry_date))/3600);
		if($min+8 < $hour) { 
	echo $html;
	}
	?>
	</dd>
<?php endwhile; endif; ?>
	</dl>
 <?php if (function_exists("pagination")) {
    pagination($additional_loop->max_num_pages);
} ?>
<?php wp_reset_query(); ?>
	</div><!-- /.newspage -->				

似たタイプの記事

トップへ戻る