Как насчет передачи аргументов с помощью GET, как вы предлагаете, а затем ручного составления вашего пользовательского запроса с помощью query_posts или чего-то еще, что вы используете?
Ссылка для изменения заказа:
<a href="?order=DESC&orderby=Data">Data, descencing</a>
И PHP:
if( !empty($_GET['order']) ) $order=$_GET['order'];
else $order='DESC'; // default
if( !empty($_GET['orderby']) ) $orderby=$_GET['orderby'];
else $orderby = 'Data'; // default
query_posts('orderby='.$orderby.'&order='.$order);
Вероятно, для большинства пользователей было бы проще сделать это с AJAX, чтобы страница не перезагружалась, но у нее были свои недостатки (с точки зрения доступности), и вам потребовалось бы немного больше работы для ее реализации.