Правильный синтаксис PHP для пользовательского цикла WP
Я пытаюсь вставить опцию сортировки в мой WordPress сайт. У меня уже есть это работает, но мне нужна помощь, чтобы правильно использовать его с циклом WordPress. В настоящее время у меня есть:
On a page, there are options to sort alphabetically or chronologically:
<a href="?sort=date">Newest</a>
<a href="?sort=title">Alphabetical</a>
Sorting Code starts here, placed above the loop:
<?php $sort= $_GET['sort'];
if($sort == "title") { $order= "'orderby'=>'title','order'=>ASC'"; }
elseif($sort == "date") { $order= "'orderby'=>'date'"; }
else{ $order= "'orderby'=>'date','order'=>'DESC'"; }
?>
note: I am pretty sure the problem lies above in the variable $order
Wordpress Loop Using Variable $order
as an 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; ?>
Цикл отображает элементы правильно, но ссылки сортировки не работают. Этот код очень хорошо работает с query_posts, но я пытаюсь заставить это работать для WP_Query (выше). Есть идеи здесь?
UPDATEЭтот метод отлично работает с использованием query_posts, как показано ниже (но мне все еще нужно, чтобы он работал для 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; ?>