1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

投稿一覧とかで無限ループする場合

Posted at

一覧ページで投稿記事などが無限にループして表示されてしまうパターンがまれにある。

私がハマったパターンだと、

<?php 
while(the_repeater_field('author_profile')):
    query_posts($args);
    if (have_posts()):while(have_posts()):the_post();

    <?php endwhile; else:?>

    <?php endif;?>

    <?php endwhile;?>

<?endwhile;?>

というパターンで、advanced custom fieldsのループの間に記事のループを入れていた。

http://2inc.org/blog/2013/03/06/3020/
によるとwordpressループ内にhave_postsを入れると無限ループするよう。
対策としてforeachを使えば良いとのことだったので、以下のようにやってみた。

<?php 
while(the_repeater_field('author_profile')):
	$relate_posts = get_posts( $args );
	foreach($relate_posts as $post) :setup_postdata( $post );


	<?php endforeach; ?>
<?endwhile;?>

とりあえず、これで今のところ問題なさげ。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?