WordPressで条件分岐が効かない場合についてお教えください。


あるテストページで 投稿の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; ?>

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2011/08/12 12:05:02

ベストアンサー

id:kohonly No.1

回答回数25ベストアンサー獲得回数2

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; ?>
id:Becky_moni

素晴らしいです。両方出力されています。。

すみませんが、上部の if (is_page('test'))はテストの為においたもので

実際にはそこには書き込みません。

上部を取ってしまうと 下部の if (is_page('test')) はどうやって書けば良いのでしょう?

意味合いが理解できてないので申し訳ないです。

2011/08/05 16:18:44

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません