Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * Register new query variables for post type and author
  5. *
  6. * @param array $vars Default query variables array
  7. * @return array
  8. */
  9. function my_register_filter_query_vars( $vars ) {
  10. array_unshift( $vars, 'post_type', 'author' );
  11. return $vars;
  12. }
  13.  
  14. add_filter( 'jet-smart-filters/query/vars', 'my_register_filter_query_vars' );
  15.  
  16. /**
  17. * Add required variables from request to filtered query arguments.
  18. * You can use this if you need to make some actions with $value before sending it into query
  19. *
  20. * @param string $value Raw value from request.
  21. * @param string $key Raw key from request.
  22. * @param string $var Currently processed query variable name.
  23. * @param object $query Jet_Smart_Filters_Query_Manager instance.
  24. * @return string
  25. */
  26. function my_process_filter_query_vars( $value, $key, $var, $query ) {
  27. return $value;
  28. }
  29.  
  30. add_filter( 'jet-smart-filters/query/add-var', 'my_process_filter_query_vars', 10, 4 );
  31.  
  32. /**
  33. * Remove aproppriate rows from meta query (because plugin is always added all unknown data as meta query)
  34. *
  35. * @param array $row Meta query row.
  36. * @return array
  37. */
  38. function my_clear_meta_query( $row ) {
  39.  
  40. if ( in_array( $row['key'], array( 'author', 'post_type' ) ) ) {
  41. $row = array();
  42. }
  43.  
  44. return $row;
  45. }
  46.  
  47. add_filter( 'jet-smart-filters/query/meta-query-row', 'my_clear_meta_query' );
  48.  
  49. /**
  50. * Add required post types to initial query arguments
  51. * 188 - is listing ID which should be filterable. You need to replace it with your own.
  52. *
  53. * @param array $args Query arguments array
  54. * @param object $widget Widget instance
  55. * @return array
  56. */
  57. function my_add_initial_post_types_to_grid( $args, $widget ) {
  58.  
  59. $settings = $widget->get_widget_settings();
  60.  
  61. if ( empty( $settings['lisitng_id'] ) || 188 !== absint( $settings['lisitng_id'] ) ) {
  62. return $args;
  63. }
  64.  
  65. $post_types = array_unique( array_merge(
  66. array( $args['post_type'] ),
  67. array( 'post', 'page', 'events', 'apartments' )
  68. ) );
  69.  
  70. $args['post_type'] = $post_types;
  71.  
  72. return $args;
  73. }
  74.  
  75. add_filter( 'jet-engine/listing/grid/posts-query-args', 'my_add_initial_post_types_to_grid', -1, 2 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement