Hi John,
Yeah, I kinda figured. Was hoping for some miraculous way around jamming a ton of data into WordPress…
We ended up changing the business logic on this one, and are now running the duplicate exam function every 10 minutes starting a few days before the exam date, so that all users will have their exams created before they show up. Not the best, but everyone will at least get instant access to their exams.
Thanks for the reply!
This is great – thanks James!
Hi John,
This is an interesting workaround, but in the end, all it’s doing is passing in the post_id to have_rows(). I’ve accomplished this in a simplified manner using setup_postdata() a few comments back. This method also avoids having to update all of the other templates I’m using for the large number of flexible content layouts included on each site.
I think we can call this one closed for now, but thanks for investigating it with me!
Hi John,
We’ve tried it without get_template_part, and it still does the same thing. My first message in this thread included that code.
Yes, please pass this up – would be great to have a fix that doesn’t include setup_postdata.
Thanks!
Okay, ultra simple version of this, with a temporary workaround.
The problem is that have_rows uses $post_id from the current page when you don’t specifically set it, even if it’s nested in a have_rows that has it specifically set.
The workaround is to setup_postdata before the third-level have_rows, and wp_reset_postdata it once we’re done with it.
Can this be updated to use the parent have_rows post if it’s been specifically set?
Hi John,
I’ve drawn up a little diagram to further explain what I’m doing here.
Here’s a point-by-point explanation:
All of this is working as long as the block that we’re trying to pull from Page 2 doesn’t include another have_rows() call. I’ve explored the plugin code a bit, and it looks like there’s a case where it breaks in api/api-template.php around line 489.
I’m going to do some more testing, but the main problem is that it’s resetting the have_rows() loop for Page 1, causing the entire page to be re-generated, which includes the item from Page 2 again, causing the infinite loop.
I’m aware of the potential for including another “block_reference” from another page, and have added some code to avoid this.
Thanks again for your help,
Scott
Hi John,
Please see attached! I’ve re-created a simplified version of the field group, and have re-tested using updated code. It’s still doing the same – it resets the first loop, causing the page to keep spitting everything out again and again.
Thanks!
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Cookie Policy. If you continue to use this site, you consent to our use of cookies.