2016-12-26 8 views
0

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が条件付きで表示されていることを確認する方法がわかりません。どんな助けでも大いに助けられるでしょう。

ありがとう。

+1

var_dump($ page_field); var_dump($ page_title);それらの値が期待どおりであることを確認してください。 – Kaylined

+0

@Kaylined私はそれらをvar_dumpして、両方とも 'string(0)" "string(22)"商用エアーチャーター " –

+0

を印刷します。最初のvarは空です。 if( "" = "商業航空憲章")は有効ではありません。 – Kaylined

答えて

0

ルーピングが私を乱しているように見えます。最初にページ自体をループし、ページタイトルを取得した後、カスタムポストタイプをループしました。これにより、ifブロックが実行されます。コードは次のとおりです。

<?php 

        $args_commercial = array(
         'post_type' => 'sidebar_post' 
         ); 

        $query_commercial = new WP_Query($args_commercial); 

       ?> 

       <ul> 

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

       <?php 

       $page_title = strtolower(get_the_title()); 

       ?> 

       <?php endwhile; endif; ?> 

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

        $page_field = strtolower(get_field('page')); 

        if (trim($page_field) == trim($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; ?> 

       </ul> 
関連する問題