|
<?php |
|
|
|
/** |
|
* Register new query variables for post type and author |
|
* |
|
* @param array $vars Default query variables array |
|
* @return array |
|
*/ |
|
function my_register_filter_query_vars( $vars ) { |
|
array_unshift( $vars, 'post_type', 'author' ); |
|
return $vars; |
|
} |
|
|
|
add_filter( 'jet-smart-filters/query/vars', 'my_register_filter_query_vars' ); |
|
|
|
/** |
|
* Add required variables from request to filtered query arguments. |
|
* You can use this if you need to make some actions with $value before sending it into query |
|
* |
|
* @param string $value Raw value from request. |
|
* @param string $key Raw key from request. |
|
* @param string $var Currently processed query variable name. |
|
* @param object $query Jet_Smart_Filters_Query_Manager instance. |
|
* @return string |
|
*/ |
|
function my_process_filter_query_vars( $value, $key, $var, $query ) { |
|
return $value; |
|
} |
|
|
|
add_filter( 'jet-smart-filters/query/add-var', 'my_process_filter_query_vars', 10, 4 ); |
|
|
|
/** |
|
* Remove aproppriate rows from meta query (because plugin is always added all unknown data as meta query) |
|
* |
|
* @param array $row Meta query row. |
|
* @return array |
|
*/ |
|
function my_clear_meta_query( $row ) { |
|
|
|
if ( in_array( $row['key'], array( 'author', 'post_type' ) ) ) { |
|
$row = array(); |
|
} |
|
|
|
return $row; |
|
} |
|
|
|
add_filter( 'jet-smart-filters/query/meta-query-row', 'my_clear_meta_query' ); |
|
|
|
/** |
|
* Add required post types to initial query arguments |
|
* 188 - is listing ID which should be filterable. You need to replace it with your own. |
|
* |
|
* @param array $args Query arguments array |
|
* @param object $widget Widget instance |
|
* @return array |
|
*/ |
|
function my_add_initial_post_types_to_grid( $args, $widget ) { |
|
|
|
$settings = $widget->get_widget_settings(); |
|
|
|
if ( empty( $settings['lisitng_id'] ) || 188 !== absint( $settings['lisitng_id'] ) ) { |
|
return $args; |
|
} |
|
|
|
$post_types = array_unique( array_merge( |
|
array( $args['post_type'] ), |
|
array( 'post', 'page', 'events', 'apartments' ) |
|
) ); |
|
|
|
$args['post_type'] = $post_types; |
|
|
|
return $args; |
|
} |
|
|
|
add_filter( 'jet-engine/listing/grid/posts-query-args', 'my_add_initial_post_types_to_grid', -1, 2 ); |