人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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; ?>

●質問者: ベキ
●カテゴリ:インターネット ウェブ制作
✍キーワード:ECHO PHP wordpress テスト データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kohonly
ベストアンサー

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')) はどうやって書けば良いのでしょう?

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ