I solved it. Maybe it could be a better code. But it works and i’m happy with it. 🙂
<?php
$posts = get_posts(array('meta_key' => 'haus'));
if( $posts ) {
$anzhaus = array();
foreach( $posts as $post ) {
setup_postdata( $post );
$anzhaus[] = get_field('haus');
}; //foreach( $posts as $post )
$uniquehaus = array_unique($anzhaus);
foreach( $uniquehaus as $hpost ) {
setup_postdata( $hpost );
echo('<div class="hausbox"><div class="Haustitel">'.$hpost.'</div>');
$args = array('meta_query' => array('relation' => 'AND', array('key' => 'geschoss'), array('value' => $hpost) ));
$the_query = new WP_Query( $args );
if( $the_query->have_posts() ) {
$anzgeschoss = array();
while ( $the_query->have_posts() ) {
$the_query->the_post();
$anzgeschoss[] = get_field('geschoss');
};
$uniquegeschoss = array_unique($anzgeschoss);
foreach ($uniquegeschoss as $geschoss) {
echo'<div class="geschossbox"><div class="Geschosstitel">'.$geschoss.'</div>';
$wohnargs = array('meta_query' => array('relation' => 'AND', array('value' => $geschoss), array('value' => $hpost) ));
$wohn_query = new WP_Query( $wohnargs );
if( $wohn_query->have_posts() ) {
while( $wohn_query->have_posts() ) {
$wohn_query->the_post(); ?>
<div class="Wohnungsbox"> //here we go!!!
</div>
<?php };
}; ?>
</div>
<?php };
};
wp_reset_query(); // Restore global post data stomped by the_post().
echo('</div>'); //hausbox
} //foreach( $uniquehaus as $hpost )
}; //if( $posts )
wp_reset_query(); // Restore global post data stomped by the_post().
?>
One step further…. this works for the first loop:
<?php
$posts = get_posts(array('meta_key' => 'Content'));
if( $posts ) {
$anzContent = array();
foreach( $posts as $post ) {
setup_postdata( $post );
$anzContent[] = get_field('Content');
}; //foreach( $posts as $post )
$uniqueContent = array_unique($anzContent);
foreach( $uniqueContent as $contentboxes ) {
setup_postdata( $contentboxes );
echo('<div class="Contentbox">');
echo($contentboxes);
echo('</div>'); //Contentbox
} //foreach( $uniqueContent as $contentboxes )
}; //if( $posts )
wp_reset_query();
?>
To get the Contentboxes i did 2 loops. One loop to get all Content values of all posts (like A,A,B,E,D,D,D).
then I put this array in an array_unique to get each value only once (A,B,E,D)
For each of this array_unique_values i createt a <div>.
This works so far.
Now i tried to get the wraps of each Contentbox the same way:
<?php
$posts = get_posts(array('meta_key' => 'Content'));
if( $posts ) {
$anzContent = array();
foreach( $posts as $post ) {
setup_postdata( $post );
$anzContent[] = get_field('Content');
}; //foreach( $posts as $post )
$uniqueContent = array_unique($anzContent);
foreach( $uniqueContent as $contentboxes ) {
setup_postdata( $contentboxes );
echo('<div class="Contentbox">');
$wraps = get_posts(array('meta_value' => $contentboxes));
if( $wraps ) {
$anzwraps = array();
foreach( $wraps as $wrap ) {
setup_postdata( $wrap );
$anzwraps[] = get_field('wrap');
}; //foreach( $wraps as $wrap )
$uniquewrap = array_unique($anzwraps);
foreach( $uniquewrap as $thiswrap ) {
setup_postdata( $thiswrap );
echo('<div>');
echo($thiswrap);
echo('</div>');
};
};
echo('</div>');
};
};
wp_reset_query();
?>
This is not working. It echoes the same value each contentbox. Why? I don’t get it… 🙁
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!
✨ You can now install ACF PRO with Composer, eliminating the need for third-party installers. Get the details and instructions here. https://t.co/ebEfp60Pwj
— Advanced Custom Fields (@wp_acf) February 2, 2023
© 2023 Advanced Custom Fields.
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.