WordPress 補足

   2009/11/11

<?php query_posts('arguments'); ?> 

ループ内でクエリを変更するために使う。
特定のカテゴリの記事を○件表示、といった時に使う最も使用頻度の高いタグではないかと思います。
詳細はここ。
これが、たまに悪さをします。
たとえば、下はindex.phpでかいてる、トップ用にNEWSカテゴリの記事を5件表示するものです。


<?php if (is_home () ) : ?>
<?php query_posts('cat=10&showposts=5'); ?>
<?php endif; ?>

<?php while (have_posts()) : the_post(); ?>
<div class="topPost">
  <h3 class="topTitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
  <?php
	$days=30;
	$today=date('U');
	$entry=get_the_time('U');
	$sa=date('U',($today - $entry))/86400;
	if( $days > $sa ){
 	 	echo " <span class="new">"."new!"."</span>";
 	}
?>
</h3>
<p class="topMeta"><?php the_time( get_option('date_format') ); ?></p>
  <div class="topContent"><?php the_content('(continue reading...)'); ?></div>
</div> <!-- Closes topPost -->
<?php endwhile; ?>

それで、sidebar.phpのほうでは、こんな風に、もしもNEWSカテゴリーだった場合、月別記事を表示、としています。

<?php if (is_category('10')) { ?>
<!--NEWS ARCHIVES-->
<h2>MONTHLY ARCHIVES</h2>
<ul class="sidelist">
<?php wp_get_archives('cat=10'); ?>
</ul>
<!--NEWS ARCHIVES END-->
<?php } ?>

ところが、index.phpのほうでの、

<?php query_posts('cat=10&showposts=5'); ?>

をひきずってしまい、トップページなのに、サイドにこの月別記事が表示されてしまいます。
なので、こんなふうに、ループが終わったところで、 query_postsをクリアさせます。


<?php endwhile; ?>
<!-- clear query_posts -->
<?php query_posts($query_string); ?>

あと、index.phpのこれは、新着記事にNEW!マークをつけてます。30日間持続します。

<?php
	$days=30;
	$today=date('U');
	$entry=get_the_time('U');
	$sa=date('U',($today - $entry))/86400;
	if( $days > $sa ){
 	 	echo " <span class="new">"."new!"."</span>";
 	}
?>

↓↓↓色んなバリ通の方のブログでバリ島の最新情報が確認できますよ。
にほんブログ村 海外生活ブログ バリ島情報へ
にほんブログ村
  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

This site uses Akismet to reduce spam. Learn how your comment data is processed.