2017-09-11 14 views
1

私は自分のウェブサイトのために私が持っているスポンサーのすべてのロゴを投稿するためにcolophonを作成しました。私はカスタムスポンサータイプでスポンサーをすべて追加します。私はスポンサーシップの異なる類型を区別するために特定のカスタムタクソノミを追加しました。wordpress get_termsとWP_Queryが期待通りに動作しない

<?php $terms = get_terms('sponsor_tipology'); 
$count = count($terms); 
if ($count > 0) { 
    foreach ($terms as $term) { ?> 
     <div class="col-xs-12 <?php echo $term->slug ;?>">  
     <h3><?php echo $term->name;?></h3> 
     <?php $arg = array (
       'post_type' => 'colophone', 
       'post_per_page' => -1, 
       'sponsor_edition' => 'current', 
       'sponsor_tipology' => $term->slug, 
       ); 

     $pesca_post = new WP_Query ($arg); 
     $quanti_post = $pesca_post->post_count; 

     if(have_posts()){ 
      while ($pesca_post->have_posts()) : $pesca_post->the_post(); 
       $featured = get_the_post_thumbnail_url(get_the_ID(),'large'); 

       if ($quanti_post == 5){ 
        $classe_bootstrap = 15; 
       }elseif ($quanti_post > 5){ 
        $classe_bootstrap = "2 text-center"; 
       }elseif($quanti_post < 5){ 
        $classe_bootstrap = 12/$quanti_post; 
       } 

       echo '<div class="col-md-' . $classe_bootstrap . '">'; 
       if (isset($featured)){ 
        $img = $featured; 
       }else{ 
        $img = get_template_directory_uri() . '/img/placeholder.png'; 
       } ?> 
       <a href="<?php echo esc_attr(get_permalink($msd_settings['partner_page'])); ?>" title="<?php echo get_the_title($post->ID);?>" > 
        <div class="col-xs-12" style="background-image:url(<?php echo esc_url($img); ?>); height:100px;background-size:contain;background-repeat:no-repeat;background-position:center center;"></div> 
       </a> 
       <?php echo '</div>'; 
     endwhile; 
    }?> 
    </div> 
<?php } 
}?> 

私の問題は、このコードは完全に他の上のそれはに属するものを避け内容を示し、ほんの一部のページで動作していることである。

は、私はそれらを表示するには、footer.phpにこのコードを使用しますそれがどのようなものであろうと、最初の言葉。

私は他のクエリを使用するpagaesで動作することに気付きました。

私は間違っていますか?

+0

直前に 'wp_reset_query()'や 'wp_reset_postdata()'を試してみましたか? –

答えて

0

私はこのように変更して、今は動作しています!

$terms = get_terms('sponsor_tipology'); 
    $count = count($terms); 
     if ($count > 0) { 
      foreach ($terms as $term) { //per ogni termine presente 
      $nome = $term->slug;?> 
      <div class="col-xs-12 <?php echo $term->slug ;?>">  
       <h3><?php echo $term->name;?></h3> 
       <?php $arg = array (
        'post_type' => 'colophone', 
        'post_per_page' => -1, 
        'sponsor_edition' => 'current', 
        'sponsor_tipology' => $nome, 
        ); 

        $elementi = get_posts($arg); 
        $quanti_post = count($elementi); 

        if ($quanti_post == 5){ 
         $classe_bootstrap = 15; 
        } 
        elseif ($quanti_post > 5){ 
         $classe_bootstrap = "2 text-center"; 
        } 
        elseif($quanti_post < 5){ 
         $classe_bootstrap = 12/$quanti_post; 
        } 

        foreach($elementi as $elemento){ 
         $featured = get_the_post_thumbnail_url($elemento->ID,'large'); 
         if (isset($featured)){ 
          $img = $featured; 
         } 
         else{ 
          $img = get_template_directory_uri() . '/img/placeholder.png'; 
         } ?> 
         <div class="col-md-<?php echo $classe_bootstrap; ?>"> 
          <a href="<?php echo esc_attr(get_permalink($msd_settings['partner_page'])); ?>" title="<?php echo get_the_title($elemento->ID);?>" > 
          <div class="col-xs-12" style="background-image:url(<?php echo esc_url($img); ?>); height:100px;background-size:contain;background-repeat:no-repeat;background-position:center center;"></div> 
          </a> 
         </div> 
      <?php }?> 
     </div> 
    <?php } 
}?> 
関連する問題