query_postsを使ったらwp_reset_queryでリセット

wordpressにhtmlを知らなくても、
固定ページから変更するだけでサイドバーや、
トップページを変更できるように

<?php if(have_posts()): while(have_posts()): the_post(); ?>
<?php endwhile; endif; ?>

を使って固定ページにつけたスラッグを呼び出すようにしたところ、
思い通りに出来たのですが、
今度は全ページにのリンクもこちらに引っ張られるようになりました。
色々と調べたところ

この関数は、WordPress ループ を query_posts() で変更したカスタムループのクエリをリセットし、元の WordPress ループ のクエリに戻します。カスタムループの後では、条件分岐タグを期待通りに動作させるために、必ずこの関数を呼び出してください。

とありました。
一回ページに呼び出したところループになっていて、
どのリンクをたどっても呼び出したページが出ちゃうんですね。
なのでリセットしないといけないらしいです。
で結局最後書いたのがこれ。

<?php if(is_home()); ?>
<?php query_posts('pagename=xxxxx'); ?> //xxxxxにページのスラッグを書く
<?php if(have_posts()):
while(have_posts()): the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; endif;
wp_reset_query(); ?> //ここでリセット

あとはcssで整形して終わり。
備忘録として残しておきます。
誰かのお役に立てれば幸いです。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です