あるテストページで 投稿のpostを終わった後に条件分岐が効きません。
またその投稿postの前に同じ条件分岐を入れると反映できます。
なにか投稿部分でデータを引きずってしまうために、その以降書かれた条件分岐が効いてないのはわかるのですが、対策方法がわかればお教え願いたいです。
書いたものです。
<?php if (is_page('test')): ?>
※ここは表示されます。
<?php endif; ?>
<?php //
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$wp_query = new WP_Query( array( 'posts_per_page' => 5, 'paged' => $paged ) ); ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<div id="list" class="post cf">
<?php if(has_post_thumbnail()) { echo the_post_thumbnail(); } ?><h2 id="title"><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php $title= mb_substr($post->post_title,0,30); echo $title.'…'; ?></a><?php include (TEMPLATEPATH . '/news.php'); ?></h2>
略
<?php endwhile; ?>
<?php wp_reset_query();?>
<?php if (is_page('test')): ?>
※ここが表示されません。
<?php endif; ?>
WordPress以外の方法です。
最初の部分で$displayTestという変数にtrue or falseを設定してあげて
<?php $displayTest = false; //初期値を設定 ?> <?php if (is_page('test')): ?> //ここは表示されます。 <?php $displayTest = true; //testの時のみtrueを設定する ?> <?php endif; ?>
で、最後の
<?php if (is_page('test')): ?> //ここが表示されません。 <?php endif; ?>
この部分を以下みたいに変更しても大丈夫な気がします。
<?php if ($displayTest): //trueの時のみ ?> //ここに表示したい内容を書く <?php endif; ?>
補足です。
上部で以下の用なコードを書いて$displayTestに値を入れておけばいいと思います。
<?php $displayTest = (is_page('test'))?true:false; ?>
素晴らしいです。両方出力されています。。
すみませんが、上部の if (is_page('test'))はテストの為においたもので
実際にはそこには書き込みません。
上部を取ってしまうと 下部の if (is_page('test')) はどうやって書けば良いのでしょう?
意味合いが理解できてないので申し訳ないです。