it-swarm.com.de

Erstellen Sie Beiträge für die Loop-Anzeige in alphabetischer Reihenfolge

Mit dieser Schleife zeige ich einzelne Beiträge auf einer Archivseite an. Die Beiträge werden nach der Kategorie 'Banken' sortiert. Wie kann ich sie außerdem in alphabetischer Reihenfolge anzeigen? Ich habe versucht, WP_Query zu verwenden, kann es jedoch nicht zum Laufen bringen. es bricht jedes Mal meine Schleife.

<h3>Banks & Credit Unions</h3>

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 
    if ( in_category( 'Banks' ) ) { ?>
        <li>
            <a href="<?php the_permalink() ?>">
                <img  src="<?php the_field( 'biller_logo' )?>">
                <?php the_field( 'biller_name' ) ?>
            </a>
        </li>
    <?php } 
endwhile; endif; ?>
</ul>
4
Andrew Levy

Um Beiträge in absteigender alphabetischer Reihenfolge anzuzeigen, fügen Sie dies Ihrem args-Array hinzu (aus dem wp-Codex entnommen).

'orderby' => 'title',
'order'   => 'DESC',

Um Beiträge in aufsteigender alphabetischer Reihenfolge anzuzeigen, wechseln Sie einfach DESC zu ASC.

Das Ganze würde also so aussehen:

$args = array(
    'orderby' => 'title',
    'order'   => 'DESC',
);
$query = new WP_Query( $args );

WP_Query Reihenfolge nach Parametern

Oder verwenden Sie get_posts, wenn Sie die Hauptschleife nicht ändern möchten. WP query ändert die Hauptschleife, indem die Variablen der globalen Variablen $ wp_query geändert werden. get_posts verweist dagegen einfach auf ein neues WP_Query-Objekt und beeinflusst oder ändert daher die Hauptschleife nicht. Es würde auf die gleiche Weise verwendet, aber $query = new WP_Query( $args ); in $query = get_posts( $args ); geändert.

Wenn Sie die Hauptabfrage vor ihrer Ausführung ändern möchten, können Sie sie mit der Funktion pre_get_posts einbinden.

4
yobddigi

Nicht der beste Code, den ich jemals hier geschrieben habe, aber wenn Sie eine Liste wie folgt erstellen möchten:

  • EIN
  • Amerika
  • B
  • Brasilien
  • Bahamas

Du könntest benutzen..

<ul>
                            <?php 
                                query_posts(array( 
                                    'post_type' => 'franchise',
                                    'showposts' => 100,
                                    'orderby'=>'title','order'=>'ASC'
                                ) );  
                                $title_2 = 'A';
                            ?>
                            <?php while (have_posts()) : the_post(); ?> 
                                <?php
                                    $title = get_the_title();
                                    $title_1 = $title[0];
                                    if ($title_1 !== $title_2){
                                        echo '<li>&nbsp;</li><li><h3>' . $title_1 . '</h3></li><li>&nbsp;</li>';
                                        $title_2 = $title_1;
                                    }
                                ?>                              
                                    <li><a href="<?php echo get_the_permalink(); ?>"><?php echo get_the_title(); ?></a></li>
                                <?php endwhile;?>
                            </ul>

Wie ich schon sagte - nicht die beste Praxis .. aber Sie können aufräumen und von hier aus arbeiten :)

1
Ryan Edmondson