Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- defined( 'ABSPATH' ) || exit;
- add_filter( 'apto/get_orderby', 'apto_get_orderby', 10, 5 );
- function apto_get_orderby( $new_orderBy, $orderBy, $sort_view_id, $query, $order_list = FALSE )
- {
- global $wpdb;
- if ( $order_list === FALSE )
- return $new_orderBy;
- //Only on front side
- if ( is_admin() )
- return $new_orderBy;
- $_LimitIndexLiatTo = 1000;
- $order_list = array_slice( $order_list, 0, $_LimitIndexLiatTo );
- $query_order = isset($query->query['order']) ? strtoupper($query->query['order']) : 'ASC';
- $counter = 0;
- $orderBy = "CASE ";
- foreach ( $order_list as $value )
- {
- $counter++;
- $orderBy .= " WHEN ". $wpdb->posts .".ID = ". $value ." THEN ". $counter;
- }
- $counter++;
- if ( $query_order == 'DESC')
- $counter = 0;
- $orderBy .= " ELSE ". $counter ." END, ".$wpdb->posts.".post_date " . $query_order;
- return $orderBy;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement