Advertisement
nshelper

Untitled

May 4th, 2023
843
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.15 KB | None | 0 0
  1. <?php
  2.  
  3. defined( 'ABSPATH' ) || exit;
  4.  
  5. add_filter( 'apto/get_orderby',     'apto_get_orderby', 10, 5 );
  6. function apto_get_orderby( $new_orderBy, $orderBy, $sort_view_id, $query, $order_list = FALSE )
  7.     {
  8.         global $wpdb;
  9.        
  10.         if ( $order_list === FALSE )
  11.             return $new_orderBy;
  12.        
  13.         //Only on front side
  14.         if  ( is_admin() )
  15.             return $new_orderBy;
  16.  
  17.         $_LimitIndexLiatTo  =   1000;
  18.        
  19.         $order_list =   array_slice( $order_list, 0, $_LimitIndexLiatTo );
  20.        
  21.         $query_order = isset($query->query['order']) ? strtoupper($query->query['order']) : 'ASC';
  22.        
  23.         $counter = 0;
  24.        
  25.         $orderBy = "CASE ";
  26.         foreach ( $order_list as $value )
  27.             {
  28.                 $counter++;
  29.                 $orderBy .= " WHEN ". $wpdb->posts .".ID = ". $value ."  THEN  ". $counter;  
  30.             }
  31.        
  32.         $counter++;
  33.         if (  $query_order  ==  'DESC')
  34.             $counter    =   0;
  35.         $orderBy .= " ELSE ". $counter ." END, ".$wpdb->posts.".post_date " . $query_order;
  36.                    
  37.         return $orderBy;  
  38.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement