Support Forums

The forums are closed and will be removed when we launch our new site.

Looking for support? You can access the support system via your account.

Forums Forums Search Search Results for 'sf_edit_query_args'

Viewing 10 results - 181 through 190 (of 205 total)
  • Author
    Search Results
  • #68698

    In reply to: Default result


    François Nantel
    Participant
    This reply has been marked as private.
    #68671

    In reply to: Default result


    Trevor
    Moderator

    It IS possible, but I have never done it. You would need to use the is_filtered() function to see if the filter has yet been used (or has been reset) and then use sf_edit_query_args filter to change the incoming filters applied to the page. All this in your child theme functions.php file.

    You might find ideas in this github repository from the developer of Search & Filter:

    https://github.com/rmorse

    #67175

    Ash
    Participant

    One more question.
    Is there way to add extra parameter to shortcode?
    To set default query.

    i.e.

    [searchandfilter id="1428" show="results" post="123"]
    
    function sf_filter_query_args( $query_args, $sfid ) {
      if($sfid==1428)
      {
            /* i'm not sure how to get $shortcode_param */
      	$query_args['my_post_id'] = $shortcode_param['post'];
      }
      return $query_args;
    }
    add_filter( 'sf_edit_query_args', 'sf_filter_query_args', 10, 2 );
    #64610

    Ash
    Participant

    I understand.
    BTW, Can’t I use these hook to filter dropdown?
    sf_edit_query_args or sf_input_object_pre

    https://www.designsandcode.com/documentation/search-filter-pro/action-filter-reference/

    #56061

    Bernard Asante
    Participant

    I’m using S&F on a custom post, but i’m unable to change the amount of posts it show on a page. It seems to be limited to the reading settings of wordpress.

    I’m running S&F on a multi-site setup if that helps.

    I have tried using pre_get_posts, it works initially but then reverts back to the wp limit once any of the filters are applied, even if you reset.

    I’ve also tried the filter ‘sf_edit_query_args’ but that doesn’t play ball either

    I will send you site details in my next message

    Thank you

    #54139

    In reply to: displaying results


    Andrew Levy
    Participant
    This reply has been marked as private.
    #50954

    François
    Participant

    Hi Trevor,
    I used the code bellow in the functions.php file. Shoudn’t I ?
    Thank you 🙂

    function filter_function_name( $query_args, $sfid ) {

    //if search form ID = 1272, the do something with this query
    if($sfid==1272)
    {
    //modify $query_args here before returning it
    print_r($query_args);
    echo “Yeahhhhhhhhhhhh”;
    }

    //return $query_args;
    }
    add_filter( ‘sf_edit_query_args’, ‘filter_function_name’, 10, 2 );

    #42945

    Ross
    Keymaster
    This reply has been marked as private.
    #41753

    Ross
    Keymaster

    Hi Christian

    I have not yet had chance to implement this feature – as mentioned it only works with archives at the moment – I have just realised though if you are a dev and can do some coding this may already be possible using a filter:

    http://www.designsandcode.com/documentation/search-filter-pro/action-filter-reference/#Edit_Query_Arguments

    So in there you would manually check to see if the current page/post has a specific category:

    https://codex.wordpress.org/Function_Reference/has_category

    if(has_category( 'dogs', get_the_ID()))
    {
    
    }

    And if so, modify the S&F query to only look inside that category

    $query_args['category_name'] = "dogs"

    So putting it all together:

    function update_search_category( $query_args, $sfid ) {
    	
    	//if search form ID = 225, the do something with this query
    	if($sfid==225)
    	{
    		//here we check to see value is associated with the page
    		
    		if(has_category( 'dogs', get_the_ID()))
    		{
    			$query_args['category_name'] = "dogs"
    		}
    		else if(has_category( 'cats', get_the_ID()))
    		{
    			$query_args['category_name'] = "cats"
    		}
    		else if(has_category( 'snakes', get_the_ID()))
    		{
    			$query_args['category_name'] = "snakes"
    		}
    	}
    	
    	return $query_args;
    }
    add_filter( 'sf_edit_query_args', 'update_search_category', 10, 2 );

    One big caveat I just realised, you may have to disable ajax – this is because an ajax request gets sent off somewhere else, and I think has_category will never give the correct result in an ajax request.

    Thanks

    #41634

    Ross
    Keymaster

    There shouldn’t be a custom query inside the filter itself, the filter is used to modify the arguments before they get passed to a query – the code should look like:

    function results_map_filter( $query_args, $sfid ) {
    	
    	//if search form ID = 1530, the do something with this query
    	if($sfid==1530)
    	{
    		//modify $query_args here before returning it
    		$query_args['posts_per_page'] = -1;
    	}
    	
    	return $query_args;
    }
    add_filter( 'sf_edit_query_args', 'results_map_filter', 10, 20 );

    Thanks

Viewing 10 results - 181 through 190 (of 205 total)