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 'current_query'

Viewing 10 results - 31 through 40 (of 374 total)
  • Author
    Search Results
  • #259839

    Trevor
    Moderator

    Ah. I guess it works, but I suspect it would not in ajax mode?

    If you have access to the PHP template file that is the one that outputs the while loop (inside the products container), you could add some PHP and use that to include some CSS to hide the reset button, like this:

    <?php
    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(1234)->current_query();
    if (!($sf_current_query->get_search_term()=="") { <?
    <style>
    .woof_submit_search_form_container {display: none;}
    </style>
    <?php } ?>

    Note: you would need to change the ID number, and it looks like you don’t have a search box, so this should work.

    BTW, I think you need to add style like this also (generally):

    .woof_redraw_zone {display: flex;}

    This will stop content from below bleeding on to the ‘menu/form’.

    #259571

    giveuptheghost
    Participant

    Literally figured this out directly after posting this. I’ll post my solution for anyone interested.

    Here is the code I used in a PHP block to display the search term and a post count:

    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(678)->current_query();
    echo $sf_current_query->get_search_term();
    	
    $the_query = new WP_Query(array(
      'post_type' => 'courses',
    ));
    	
    echo $the_query->found_posts;
    wp_reset_postdata();

    Both before this code block and before the repeater that follows I put this shortcode (so twice):
    [searchandfilter id=”YOURSEARCHID” action=”filter_next_query”]

    I had tried this almost exactly last night (except without any arguments for $the_query) but it didn’t work. The trick was that I had to filter “$the_query” by at least one argument, in this case post_type. If I left the arguments empty or passed an empty $args, the searchandfilter shortcode wouldn’t filter. I’m assuming that shortcode is just a pre_get_posts based on the filter parameters and there needs to be at least one parameter for pre_get_posts to work.

    Either way, I believe I have it figured out – thanks for making a great plugin! It would be great to get more direct Oxygen Builder support in the future as it’s an amazing builder for people who can code but in the meantime, things are working so I’m happy!

    #257288

    Jesse Hodges
    Participant

    I’m working with the active query ($searchandfilter->get($SAFId)->current_query()) and I’m hoping to programmatically get all of the options for one of the fields. Is there a good way to go about this?

    #256885

    In reply to: No search results


    Trevor
    Moderator

    I apologise for the delay Jens, I ran out of time yesterday.

    If you haven’t already done so, can you follow this guide:

    https://searchandfilter.com/documentation/search-results/using-a-shortcode/

    In particular, follow the instructions in the Customising section.

    That will give you a results.php file you can edit, in a sub-folder named search-filter in your theme folder.

    Would you want to show that after you search? My guess is yes. So, look for this code in the results.php template file:

    Found <?php echo $query->found_posts; ?> Results<br />
    Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?><br />

    And change that to (I think this will work):

    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(30408)->current_query();
    if (!((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()==""))) {
    	Found <?php echo $query->found_posts; ?> Results<br />
    	Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?><br />
    }

    You can change anything else you want also. For example, to make the pagination look nicer, install the free WP-PageNavi plugin and delete these lines:

    <div class="nav-previous"><?php next_posts_link( 'Older posts', $query->max_num_pages ); ?></div>
    <div class="nav-next"><?php previous_posts_link( 'Newer posts' ); ?></div>
    
    #256352

    Trevor
    Moderator

    You would need to code some PHP. As you are using the Shortcode display results method, start with this guide (if you have not already):

    https://searchandfilter.com/documentation/search-results/using-a-shortcode/#customising-the-results

    To fetch the search terms, the https://searchandfilter.com/documentation/accessing-search-data/ guide is basic but you can extend the idea to grab lots of other data. If you have other filters, then it becomes a little more complex, but I can give you links. This thread might help you:

    https://support.searchandfilter.com/forums/topic/accessing-field-slug-on-search-results/

    … and this search will give similar threads I think:

    https://support.searchandfilter.com/forums/search/sf_current_query+get_array

    Note, if you are using Ajax refreshing of the results, any PHP needs to be inside the Ajax Container, or it will not update.

    #256340

    Trevor
    Moderator

    The code we would normally recommend, so you may need to modify this, or may indeed have used this, is:

    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(1045)->current_query();
    if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
      // the unfiltered posts output code here 
    } else {
      // the current (filtered) posts output code here
    }
    #256329

    Jessica Spata
    Participant

    Amazing, this works perfectly, thank you!!

    I’m using it to run a function to offset the number of posts on the first page, but only if the page is outputting the default/unfiltered loop. Is this the best way to check that?

    global $searchandfilter;
    $filtered = $searchandfilter->get(1045)->current_query()->is_filtered();
    if ( !is_admin() && $query->is_main_query() && is_home() && $filtered != 1 ) {
    ...
    }
    #255240

    Trevor
    Moderator

    The PHP to use to conditionally run code looks like this (change the ID of the form to suit):

    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(1234)->current_query();
    if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
      // the current (unfiltered) posts output code here
    } else {
      // the desired (filtered) posts output code here
    }
    #254727

    In reply to: Results count


    Christian Thibault
    Participant

    Trevor,

    It works.
    $sf_current_query = $searchandfilter->get($id)->current_query();
    $term = $sf_current_query->get_search_term();
    $count = $wp_query->found_posts;

    Thank you,

    Christian

    #254718

    In reply to: Results count


    Trevor
    Moderator

    You will not find the count in the $sf_current_query array.

    What display results method are you using?

Viewing 10 results - 31 through 40 (of 374 total)