PHPのif文でHTMLの行を返そうとしていますが、何らかの理由で実行されません。WordPress/PHP if文が実行されていない
<?php
$args_commercial = array(
'post_type' => 'sidebar_post'
);
$query_commercial = new WP_Query($args_commercial);
?>
<ul>
<?php if (have_posts()) : while ($query_commercial->have_posts()) : $query_commercial->the_post(); ?>
<?php
$thumb_id = get_post_thumbnail_id();
$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true);
$thumb_url = $thumb_url_array[0];
?>
<li data-id="0">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php
$page_field = strtolower(get_field('page'));
$page_title = strtolower(get_the_title());
if ($page_field == $page_title): ?>
<a href="<?php echo get_field('link'); ?>" style="background-image: url(<?php echo $thumb_url; ?>)"><span><?php the_title(); ?></span></a>
<?php endif; ?>
</li>
<?php endwhile; endif; ?>
<?php endwhile; endif; ?>
</ul>
はそうちょうど説明するために、私は、カスタムポストタイプ(ポストにサイドバー)の中にループしていますし、そのカスタムポストタイプ内カスタムポストタイプを表示したいページを選択するためのオプションです。
これは、$ page_field変数が表すものです。 $ page_titleは単なるページのタイトルです。理論的には、ユーザーが選択したページフィールドとページの実際のタイトルが同じであれば、HTMLが印刷され、サイドバーが表示されます。
何らかの理由で、$ page_titleと$ page_fieldがまったく同じ値であっても、ifブロック内のHTMLは実行されません(私はそれらをエコーしてテストしました)。
さらにデバッグして、HTMLが条件付きで表示されていることを確認する方法がわかりません。どんな助けでも大いに助けられるでしょう。
ありがとう。
var_dump($ page_field); var_dump($ page_title);それらの値が期待どおりであることを確認してください。 – Kaylined
@Kaylined私はそれらをvar_dumpして、両方とも 'string(0)" "string(22)"商用エアーチャーター " –
を印刷します。最初のvarは空です。 if( "" = "商業航空憲章")は有効ではありません。 – Kaylined