Guest User

Untitled

a guest
Nov 20th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. <?php
  2.  
  3. add_action('pre_get_posts', 'wc_pre_get_posts_query');
  4.  
  5. function wc_pre_get_posts_query($query) {
  6. global $woocommerce_loop;
  7.  
  8. if (is_main_query() && ( $query->query['post_type'] == 'product' ) || !isset($query->query['post_type'])) {
  9.  
  10. if (isset($query->query['paged'])) {
  11. $woocommerce_loop['paged'] = $query->query['paged'];
  12. }
  13. }
  14.  
  15. if (!$query->is_post_type_archive || $query->query['post_type'] !== 'product') {
  16. return;
  17. }
  18.  
  19. $query->is_paged = true;
  20. $query->query['paged'] = $woocommerce_loop['paged'];
  21. $query->query_vars['paged'] = $woocommerce_loop['paged'];
  22. }
  23.  
  24. add_action('loop_end', 'query_loop_end');
  25.  
  26. function query_loop_end($query) {
  27.  
  28. if (!$query->is_post_type_archive || $query->query['post_type'] !== 'product') {
  29. return;
  30. }
  31.  
  32. global $woocommerce_loop;
  33. $woocommerce_loop['pagination']['paged'] = $woocommerce_loop['paged'];
  34. $woocommerce_loop['pagination']['found_posts'] = $query->found_posts;
  35. $woocommerce_loop['pagination']['max_num_pages'] = $query->max_num_pages;
  36. $woocommerce_loop['pagination']['post_count'] = $query->post_count;
  37. $woocommerce_loop['pagination']['current_post'] = $query->current_post;
  38. }
  39.  
  40. add_action('woocommerce_after_template_part', 'wc_shortcode_pagination');
  41.  
  42. function wc_shortcode_pagination($template_name) {
  43. if (!( $template_name === 'loop/loop-end.php' && is_page() )) {
  44. return;
  45. }
  46. global $wp_query, $woocommerce_loop;
  47. if (!isset($woocommerce_loop['pagination'])) {
  48. return;
  49. }
  50. $wp_query->query_vars['paged'] = $woocommerce_loop['pagination']['paged'];
  51. $wp_query->query['paged'] = $woocommerce_loop['pagination']['paged'];
  52. $wp_query->max_num_pages = $woocommerce_loop['pagination']['max_num_pages'];
  53. $wp_query->found_posts = $woocommerce_loop['pagination']['found_posts'];
  54. $wp_query->post_count = $woocommerce_loop['pagination']['post_count'];
  55. $wp_query->current_post = $woocommerce_loop['pagination']['current_post'];
  56.  
  57. show_woocommerce_pagination();
  58. }
  59.  
  60. remove_action('woocommerce_after_shop_loop', 'woocommerce_pagination', 10);
  61. add_action('woocommerce_after_shop_loop', 'show_woocommerce_pagination', 10);
  62.  
  63. function show_woocommerce_pagination() {
  64. woocommerce_pagination();
  65. }
  66.  
  67. ?>
Add Comment
Please, Sign In to add comment