Skip to content

Instantly share code, notes, and snippets.

@aaroncolon
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aaroncolon/9406472 to your computer and use it in GitHub Desktop.
Save aaroncolon/9406472 to your computer and use it in GitHub Desktop.
Dynamic Sort CPT
<?php
function ac_sort_buttons() {
echo '<p>';
echo 'Sort:';
echo '<a href="?sort=oldest">Oldest</a>';
echo '<a href="?sort=alpha">Alphabetical</a>';
echo '<a href="?sort=random">Random</a>';
echo '<a href="?sort=all">Show All</a>';
echo '</p>';
}
<?php
/**
* Dynamic Sorting
*
*/
function ac_dynamic_sort_films( $query ) {
if ( $query->is_main_query() && !is_admin() && $query->is_post_type_archive( 'ac_films' ) ) {
if ( isset($_GET['sort']) == 'oldest' ) {
$query->set( 'order', 'DESC' );
}
if ( isset($_GET['sort']) == 'alpha' ) {
$query->set( 'orderby', 'title' );
}
if ( isset($_GET['sort']) == 'random' ) {
$query->set( 'orderby', 'rand' );
}
if ( isset($_GET['sort']) == 'all' ) {
$query->set( 'posts_per_page', '-1' );
}
}
}
add_action( 'pre_get_posts', 'ac_dynamic_sort_films' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment