wordpress_article

is_home()やis_front_page()でトップページだけに表示させたいなどの制御するとき、うまく動かないってときがあった。

WordPressでWebサイト(ホームページ)やブログを構築していく上で、WordPressの関数をたくさん使っていきます。
トップページでカスタム投稿記事を取得する際、クエリーをquery_posts()で記事の情報を引っ張ってくるんですけど、 どうやらquery_posts()を使って最新記事などを表示させるとアーカイブページとして判断されるみたいです。

原因はこれでした。

 
よーく考えたら、データベースって問い合わせが終わったらリセットしないとね。
ということで、クエリーを引っ張ってきたら最後に閉じてあげて終了すればOK。
wp_reset_query()でリセットしてあげると問題が解決します。

<?php query_posts( 'post_type=post&posts_per_page=4&&paged='.$paged ); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
 
//記事の出力
 
<?php endwhile; else: ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

 
最後の行のこれが必要。
 

<?php wp_reset_query(); ?>

 
これで解決。
けっこうあっさりだった。

そりゃそうだよね。
MySQLでもデータベースに接続したら最後に切断するもんね。

ちゃんと最後に閉じてあげないと。

 
上記で使用している「query_posts()」はメインクエリを置き換えてしまうので、ほんとは推奨されません。
なのでまた今度、別の書き方をお伝えしたいと思います。