Home › Forums › General Issues › Multiple/nested query in a single loop
I have a question concerning multiple or nested queries in a single loop and I’ve tried several solutions but none of them worked. I think I haven’t really understood the WP_Query so any help is very welcome.
The situation: I have posts about video numbers with 4 different fields, eg.:
Video # Topic Time Check (Y/N)
1 Some text 01:45 No
1 03:50 Yes
1 05:20 No
2 Other text 02:30 No
2 04:20 No
3 More text 03:20 No
3 05:30 Yes
… and so on
What I need is a list with:
– the video number
– the topic of the first post of any video
– the time of the last post
– if any of the videos have a YES as checked.
In the above example the list would look like:
1 Some text 05:20 Yes
2 Other text 04:20 No
3 More text 05:30 Yes
My problem is that I even don’t have a clue about which way to solve this issue would be best or easiest. As I said, any help is very welcome!
Thank you and greetings!
Adriano
If you use a repeater, then please check this article about nested repeater: https://www.advancedcustomfields.com/resources/working-with-nested-repeaters/.
If you have read that article but still have the issue, could you please share the JSON or XML export file of your field group and the code you’ve tried? You can paste the PHP template code here: https://gist.github.com/.
Also, could you please share some screenshots of the issue with a note on how you want it to be?
Thanks 🙂
Thanks for your response!
No, I don’t use repeaters. You’ll find the actual code here: https://gist.github.com/anonymous/944264e6cb6f10ea4948ef4240cf2b60
Actually I get a list of all entries with their field values. Thats not bad, but I want to merge every video with specific field entries:
– Video #
– Topic (topic-field in first scene for every video)
– Time (time-field in last scene for every video)
– Check (if any on the scene for every video is checked)
I’ve made a screenshot with the actual list and two examples of merged entries on video 1 and 5.
Hope this helps. Thanks for your help!
I believe you posted the scripts as separate posts with the same post title. I’m afraid this is more of a PHP and WP issue than ACF issue. For something like this, I suggest you ask to PHP or WP community instead. But, I have created an example logic for this situation:
<?php
if ( $custom_query->have_posts() ) :
$current_video_number = false;
$current_topic = false;
$current_timestamp = false;
$current_chosen = false;
while ( $custom_query->have_posts() ) : $custom_query->the_post();
$temp_video_number = get_field('video_number');
$temp_topic = get_field('topic');
$temp_timestamp = get_field('timestamp');
$temp_chosen = get_field('chosen');
if( !$current_video_number ){
$current_video_number = $temp_video_number;
$current_topic = $temp_topic;
$current_timestamp = $temp_timestamp;
$current_chosen = $temp_chosen;
} elseif ( $current_video_number == $temp_video_number ) {
$current_timestamp = $temp_timestamp;
if( $temp_chosen == 'Yes' || ($current_chosen == 'No' && $temp_chosen == 'Yes') ) {
$current_chosen = 'Yes';
} else {
$current_chosen = 'No';
}
} else {
echo $current_video_number;
echo $current_topic;
echo $current_timestamp;
echo $current_chosen;
$current_video_number = $temp_video_number;
$current_topic = $temp_topic;
$current_timestamp = $temp_timestamp;
$current_chosen = $temp_chosen;
}
endwhile;
endif;
wp_reset_postdata(); ?>
If you need further support, please consult with PHP or WordPress community instead.
Thanks 🙂
Ok, thanks for your feedback! In the meantime I think I fixed the problem by myself by creating indiviual queries for every entry, all surrounded by a variable for every video thats gives me the video number and which I use as meta_value.
Thanks for your help anyway and greetings!
Adriano
The topic ‘Multiple/nested query in a single loop’ is closed to new replies.
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 Privacy Policy. If you continue to use this site, you consent to our use of cookies.