Korrigieren Sie die PHP-Syntax für die benutzerdefinierte WP-Schleife

Ich versuche, eine Sortieroption in meine WordPress-Site einzufügen. Ich habe es bereits zum Laufen gebracht, benötige aber Hilfe bei der korrekten Verwendung der WordPress-Schleife. Derzeit habe ich:

Auf einer Seite gibt es Optionen zum alphabetischen oder chronologischen Sortieren:

<a href="?sort=date">Newest</a>
<a href="?sort=title">Alphabetical</a>

Der Sortiercode beginnt hier über der Schleife:

<?php $sort= $_GET['sort']; 
    if($sort == "title") { $order= "'orderby'=>'title','order'=>ASC'"; } 
    elseif($sort == "date") { $order= "'orderby'=>'date'"; } 
    else{ $order= "'orderby'=>'date','order'=>'DESC'"; } 
?>

Anmerkung: Ich bin mir ziemlich sicher, dass das Problem oben in der Variablen $ order liegt

Wordpress-Schleife mit Variable$order als Argument

<?php $loop = new WP_Query( array( $order, 'post_type' => 'films', 'post_parent' => 0, 'posts_per_page' => -1 ) ); ?>

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

    Wordpress loop stuff here

<?php endwhile; ?>

Die Schleife zeigt Elemente korrekt an, aber die Sortierlinks funktionieren nicht. Dieser Code funktioniert sehr gut mit query_posts, aber ich versuche, dies für WP_Query (oben) zum Laufen zu bringen. Irgendwelche Ideen hier?

AKTUALISIEREN: Diese Technik funktioniert gut mit query_posts wie unten (aber ich brauche sie immer noch für WP_Query):

<?php $sort= $_GET['sort']; 
    if($sort == "title") { $order= "&orderby=title&order=ASC"; } 
    elseif($sort == "date") { $order= "&orderby=date"; } 
    else{ $order= "&orderby=date&order=DESC"; } 
?>

<?php $posts = query_posts($query_string . $order); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
       Wordpress Stuff Here
<?php endwhile; ?>
<?php endif; ?>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage