Guest User

Untitled

a guest
Aug 26th, 2015
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. add_action('pre_get_posts', 'td_modify_main_query_for_category_page2');
  2. function td_modify_main_query_for_category_page2($query) {
  3.  
  4.  
  5. //checking for category page and main query
  6. if(!is_admin() and $query->is_main_query()and (is_front_page() and is_home())) {
  7.  
  8. //get the number of page where on
  9. $paged = get_query_var('paged');
  10.  
  11. //get the `filter_by` URL($_GET) variable
  12. $filter_by = get_query_var('filter_by');
  13.  
  14. //get the limit of posts on the category page
  15. $limit = get_option('posts_per_page');
  16.  
  17.  
  18. //echo $filter_by;
  19. switch ($filter_by) {
  20. case 'featured':
  21. //get the category object
  22. $query->set('category_name', td_global::$current_category_obj->slug);
  23. $query->set('cat', get_cat_ID(TD_FEATURED_CAT)); //add the fetured cat
  24. break;
  25.  
  26. case 'popular':
  27. $query->set('meta_key', td_page_views::$post_view_counter_key);
  28. $query->set('orderby', 'meta_value_num');
  29. $query->set('order', 'DESC');
  30. break;
  31.  
  32. case 'popular7':
  33. $query->set('meta_key', td_page_views::$post_view_counter_7_day_total);
  34. $query->set('orderby', 'meta_value_num');
  35. $query->set('order', 'DESC');
  36. break;
  37.  
  38. case 'review_high':
  39. $query->set('meta_key', td_review::$td_review_key);
  40. $query->set('orderby', 'meta_value_num');
  41. $query->set('order', 'DESC');
  42. break;
  43.  
  44. case 'random_posts':
  45. $query->set('orderby', 'rand');
  46. break;
  47. }//end switch
  48.  
  49.  
  50. // how many posts are we showing in the big grid for this category
  51. $offset = 5;
  52. $query->set( 'offset', $offset );
  53.  
  54. // offset + custom pagination - if we have offset, WordPress overwrites the pagination and works with offset + limit
  55. if(empty($query->is_feed)) {
  56. if ( ! empty( $offset ) and $paged > 1 ) {
  57. $query->set( 'offset', $offset + ( ( $paged - 1 ) * $limit ) );
  58. } else {
  59. $query->set( 'offset', $offset );
  60. }
  61. }
  62. //print_r($query);
  63. }//end if main query
  64. }
Advertisement
Add Comment
Please, Sign In to add comment