Begriff mit get_the_terms() duplizieren

Lesezeit: 3 Minuten

Ich habe einige Schwierigkeiten beim Auflisten eines benutzerdefinierten Beitragstyps mit eindeutigen Kategorie-/Taxonomie-Überschriften. Ich habe eine umgekehrte ACF-Beziehung und derzeit zwei Artikel unter Kategorie 1 und einen Artikel unter Kategorie 2. Als Nächstes versuche ich, jede Kategorie zu durchlaufen und sie wie folgt aufzulisten:

Kategorie 1

  • Artikel
  • Artikel

Kategorie 2

  • Artikel

Was jedoch unten zurückgegeben wird, ist:

Kategorie 1

  • Artikel

Kategorie 1

  • Artikel

Kategorie 2

  • Artikel

        $research = get_posts(array(
            'post_type' => 'research-data',
            'meta_query' => array(
                array(
                    'key' => 'show_on_page',
                    'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. 
                    'compare' => 'LIKE'
                    )
                )
            ));
    
            ?>
            <?php if( $research ): ?>
            <h3> Research &amp; Data</h3>
            <?php foreach( $research as $r ): ?>
    
            <!-- Begin custom tax loop -->
            <?php
    
            $categories = get_the_terms($r->ID, 'research-cats', $term_args);
    
            $c_terms = array(); 
    
            foreach ( $categories as $term ) {
                $c_terms[] = $term->name;
            }
    
            $unique_cat = array_unique($c_terms);
    
            //print_r($unique_cat);
    
            ?>
    
            <strong><?php echo $unique_cat[0]; ?></strong>
    
            <ul>
                <?php
                $posts = get_posts(array(
                    'post_type' => 'research-data',
                    'orderby' => 'menu_order',
                    'order' =>  'ASC',
                    'post__in' => array($r->ID),
                    'nopaging' => true,
                    ));
    
                foreach($posts as $post) :
                    setup_postdata($post);  
                ?>
    
                <li><a href="https://stackoverflow.com/questions/32867316/<?php the_permalink(); ?>"><?php the_title(); ?> </a></li>
    
            </ul>
                <?php endforeach; ?>
     <?php endforeach; ?>
    <?php endif; ?>
    

Irgendwelche Gedanken? Das macht mich wahnsinnig!

$research = get_posts(array(
        'post_type' => 'research-data',
        'meta_query' => array(
            array(
                'key' => 'show_on_page',
                'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. 
                'compare' => 'LIKE'
                )
            )
        ));
$previous_category = '';
        ?>
        <?php if( $research ): ?>
        <h3> Research &amp; Data</h3>
        <?php foreach( $research as $r ): ?>

        <!-- Begin custom tax loop -->
        <?php

        $categories = get_the_terms($r->ID, 'research-cats', $term_args);

        $c_terms = array(); 

        foreach ( $categories as $term ) {
            $c_terms[] = $term->name;
        }

        $unique_cat = array_unique($c_terms);

        //print_r($unique_cat);

        ?>

        <?php if($previous_category !== $unique_cat[0]) { ?><strong><?php $previous_category = $unique_cat[0]; echo $unique_cat[0]; ?></strong><?php } ?>

        <ul>
            <?php
            $posts = get_posts(array(
                'post_type' => 'research-data',
                'orderby' => 'menu_order',
                'order' =>  'ASC',
                'post__in' => array($r->ID),
                'nopaging' => true,
                ));

            foreach($posts as $post) :
                setup_postdata($post);  
            ?>

            <li><a href="https://stackoverflow.com/questions/32867316/<?php the_permalink(); ?>"><?php the_title(); ?> </a></li>

        </ul>
            <?php endforeach; ?>
 <?php endforeach; ?>
<?php endif; ?>

Ohne zu wissen, wie Sie Ihre Daten erhalten und welches Format $research hat, wäre es schwierig, aber ich vermute, wenn Sie das oben Genannte mit der Hinzufügung der $ previous_category-Variablen verwenden, sollte dies dieses Verhalten verhindern

  • Du rockst. Danke, dass du mir den Tag versüßt hast.

    – Jon Nixon

    30. September 2015 um 19:48 Uhr

  • Bei der zweiten Überprüfung. Dieser Ansatz funktionierte bei der ersten Iteration. Wenn jedoch eine zweite Kategorie ein zweites Ergebnis hat, gibt es wieder doppelte Überschriften: dropbox.com/s/l3c5gec2pbltr78/…

    – Jon Nixon

    1. Oktober 2015 um 0:58 Uhr

  • Ah! Kategorien nicht in Ordnung Ich lasse mir was einfallen

    Benutzer2762134

    1. Oktober 2015 um 6:05 Uhr

  • @JonNixon Hallo, Jon Nixon. Lösen Sie Ihr Problem? Ich bekomme immer noch ein Ergebnis wie Ihren Link hier: dropbox.com/s/l3c5gec2pbltr78/…

    – Hendra

    14. September um 10:38 Uhr

  • Wenn du es schon gelöst hast, kann ich bitte die Lösung bekommen?

    – Hendra

    14. September um 10:39 Uhr

Am Ende habe ich damit angefangen und es funktioniert wie erwartet:

http://support.advancedcustomfields.com/forums/topic/duplicate-taxonomy-with-reverse-relationship/#post-30741

1428180cookie-checkBegriff mit get_the_terms() duplizieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy