2016-08-30 8 views
1

私は助けが必要です。なぜこのスクリプトが無限にループするのかわかりません。私のサイトは現在、サーバーをフリーズし続けています。つまり、リソースをSQLサーバーのシャットダウンポイントに制限しています。WPクエリForeachに無限ループがあります

global $post; 
$args = array(
    'posts_per_page' => 4, 
    'numberposts'  => 4, 
    'offset'   => 0, 
    'category'  => $id, 
    'orderby'   => 'post_date', 
    'order'   => 'DESC', 
    'meta_key'  => '', 
    'meta_value'  => '', 
    'post_type'  => 'post', 
    'post_mime_type' => '', 
    'post_parent'  => '', 
    'post_status'  => 'publish', 
    'suppress_filters' => true 
); 
$tips = get_posts($args); 
foreach($tips as $post) : setup_postdata($post); ?> 
    <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"> 
     <?php if(has_post_thumbnail()){ the_post_thumbnail('medium', array('itemprop'=>'image')); } ?> 
    </a> 

<?php endforeach?> 

どうすれば解決できますか?ありがとう

+0

こんにちは@Anantを助け、私は出力を追加しました。 Plizは$ i = 1を無視して削除します。 Thx – Mwesigwa

+0

私は、<?php setup_postdata($ tip); ?>、本当にありがとう、これがすべて修正することを願っています – Mwesigwa

+0

意味的なエラーになります!間違った出力が残っているようです<?php setup_postdata($ post); ?> – Mwesigwa

答えて

1

を次に、以下の

$old_post = $post; 

を追加してくださいそれは

を追加します
$post = $old_post; 

希望これは

+0

私はこれを見たことがない、私のパズルを解決することを願っています。ありがとう – Mwesigwa

0

あなたのforeachループが正しく閉じられていない、これは無限に繰り返す理由です。

これであなたのコードの最後の行を置き換えますendforeachは以下

wp_reset_postdata() 

と後を追加した後global $post;

<?php endforeach; ?> 
+0

ありがとう@Tarun、実際のコードが正しく終了しました。私はちょうどここでエラーをした!私は構文エラーはありません、それはちょうどクエリが無限に私のサーバーリソースを制約するループされているようです。 – Mwesigwa

1
<?php 
    $args = array(
     'posts_per_page' => 4, 
     'numberposts'  => 4, 
     'offset'   => 0, 
     'category'  => $id, 
     'orderby'   => 'post_date', 
     'order'   => 'DESC', 
     'meta_key'  => '', 
     'meta_value'  => '', 
     'post_type'  => 'post', 
     'post_mime_type' => '', 
     'post_parent'  => '', 
     'post_status'  => 'publish', 
     'suppress_filters' => true 
    ); 
     $the_query1 = new WP_Query($args); 
     if (count($the_query1->posts)>0) { 

      while ($the_query1->have_posts()) : $the_query1->the_post(); ?> 
        <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"> 
          <?php if(has_post_thumbnail()){ the_post_thumbnail('medium', array('itemprop'=>'image')); } ?> 
        </a> 
      <?php endwhile; 


     } 
?> 
+0

これは私には何の出力も与えませんが、whileループに切り替える考えは、これが続くなら私がやることです。 – Mwesigwa

+0

whileサイクルで見ると、リンク内にサムネイルがラップされているだけです。投稿のサムネイルが添付されていることを確認してください。または<?php the_title();を追加します。 ?> '画像の後のリンクタグ。私は同じodeを使用して、ホームページに最新のブログ投稿を表示しています。https://i.imgur.com/hYriXBD.png – Beneris

関連する問題