Forums Forums Search Search Results for 'sf_input_object_pre'

Viewing 10 results - 71 through 80 (of 137 total)
  • Author
    Search Results
  • #214457

    Anonymous
    Inactive

    I have found this however it as sfid ==12345 what do you use to replace 12345? Would this be a more correct snippet.

    function my_plugin_search_filter_change_label($input_object, $sfid) {
      if ($sfid == 12345 && $input_object['name'] == '_sf_post_type') {
        foreach ($input_object['options'] as $key => $option) {
          if ($option->label == 'Media') {
            $input_object['options'][$key]->label = 'Photos';
          }
        }
      }
      return $input_object;
    }
    add_filter('sf_input_object_pre', 'my_plugin_search_filter_change_label', 10, 2);
    #214449

    Trevor
    Participant

    I think you need to take a look at some of the snippets shown in this search:

    https://support.searchandfilter.com/forums/search/sf_input_object_pre+label+option/

    #214427

    Anonymous
    Inactive

    I am trying this code from the documentation you supplied. However it just removes all the options.
    How can I use this correctly?

    <?php
    function filter_input_object($input_object, $sfid)
    {
    foreach($input_object['options'] as $option)
    	{
    		if($option->value=="brochures")
    		{//the option with no value is always the "all items" or unselected state
    			$option->label = "Brochures";
    		}
    		else if($option->value=="brochures")
    		{//we want to change the label for the option "black" - we can feed back in the count number to the label for this field type
    			$option->label = "test (".$option->count.")";
    	}
    	}
    }
    add_filter('sf_input_object_pre', 'filter_input_object', 10, 2);
    ?>

    Anonymous
    Inactive

    I managed to pull the term in by using the sf_input_object_pre hook so find the search field and check if the value was empty. On my site, the only way to get to the search results page is from the header search so they should always arrive with a search term. So by getting the term from $wp->query_vars['s'], it will fill it into the shortcode form before it renders the first time on the results page.

    I’m still having some funky issues though – like the logo on my site is a link to the homepage on every page that is NOT the homepage. But since is_home is now true on the search results page despite that I’m forcing the is_search from the plugin options, I had to edit my logo so it would be a link if it was search with is_search. So far so good. Thank you for all your patience. Much appreciated.

    #206792

    Anonymous
    Inactive

    Trevor, you are awesome! Thanks for troubleshooting again. Would not have arrived at this on my own.

    FINAL code:

    function filter_function_name($input_object, $sfid) {
      if ($input_object['name'] == '_sft_author') {
        global $coauthors_plus;
        foreach($input_object['options'] as $key => $option) {
          if($option->value=="") {
            $option->label = "Search by Author";
          } else {
            $user = $coauthors_plus->get_coauthor_by( 'user_nicename', $option->value );
    	if ($user->display_name=='') {
    	  unset($input_object['options'][$key]);
    	} else {
    	  $input_object['options'][$key]->label = $user->display_name . ' (' . $option->count . ')';  
    	}
          }
        }
      }
      return $input_object;
    }
    add_filter('sf_input_object_pre', 'filter_function_name', 10, 2);

    Anonymous
    Inactive

    FINAL code:

    Okay, so the code required included that original bit. Here is the final code in the inc/template-tags.php file:

    if ( ! function_exists( 'visual_posted_on' ) ) :
    /**
     * Integrate Co-Authors Plus with TwentyTen by replacing twentyten_posted_on() with this function
     */
    function visual_posted_on() {
        if ( function_exists( 'coauthors_posts_links' ) ) :
            printf( __( '<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'twentyten' ),
                'meta-prep meta-prep-author',
                sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>',
                    get_permalink(),
                    esc_attr( get_the_time() ),
                    get_the_date()
                ),
                coauthors_posts_links( null, null, null, null, false )
            );
        else:
            printf( __( '<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'twentyten' ),
                'meta-prep meta-prep-author',
                sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>',
                    get_permalink(),
                    esc_attr( get_the_time() ),
                    get_the_date()
                ),
                sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
                    get_author_posts_url( get_the_author_meta( 'ID' ) ),
                    esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
                    get_the_author()
                )
            );
        endif;
    }
    endif;
    
    function filter_function_name($input_object, $sfid) {
      if ($input_object['name'] == '_sft_author') {
        global $coauthors_plus;
        foreach($input_object['options'] as $key => $option) {
          if($option->value=="") {
            $option->label = "Search by Author";
          } else {
            $user = $coauthors_plus->get_coauthor_by( 'user_nicename', $option->value );
    	$input_object['options'][$key]->label = $user->display_name . ' (' . $option->count . ')';
          }
        }
      }
      return $input_object;
    }
    add_filter('sf_input_object_pre', 'filter_function_name', 10, 2);

    Also, added Relevanssi plugin per your guidance and enabled it within SF Pro search form > Advanced settings.

    Really appreciate your continued support on this issue! Glad to have it resolved now.


    Anonymous
    Inactive

    Okay, so that code it still not working for me. I added it just beneath my original code. See below:

    if ( ! function_exists( 'visual_posted_on' ) ) :
    /**
     * Integrate Co-Authors Plus with TwentyTen by replacing twentyten_posted_on() with this function
     */
    function visual_posted_on() {
        if ( function_exists( 'coauthors_posts_links' ) ) :
            printf( __( '%2$s &nbsp;<span style="color:#999;">/</span>&nbsp; %3$s', 'visual' ),
                'meta-prep meta-prep-author',
                sprintf( '<span class="entry-date">%3$s</span>',
                    get_permalink(),
                    esc_attr( get_the_time() ),
                    get_the_date()
                ),
                coauthors_posts_links( null, null, null, null, false )
            );
        else:
            printf( __( '%2$s &nbsp;<span style="color:#999;">/</span>&nbsp; %3$s', 'visual' ),
                'meta-prep meta-prep-author',
                sprintf( '<span class="entry-date">%3$s</span>',
                    get_permalink(),
                    esc_attr( get_the_time() ),
                    get_the_date()
                ),
                sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
                    get_author_posts_url( get_the_author_meta( 'ID' ) ),
                    esc_attr( sprintf( __( 'View all posts by %s', 'visual' ), get_the_author() ) ),
                    get_the_author()
                )
            );
        endif;
    }
    endif;
    
    function filter_function_name($input_object, $sfid) {
      if ($input_object['name'] == '_sft_author') {
        global $coauthors_plus;
        foreach($input_object['options'] as $key => $option) {
          if($option->value=="") {
            $option->label = "All Authors";
          } else {
            $user = $coauthors_plus->get_coauthor_by( 'user_nicename', $option->value );
    	$input_object['options'][$key]->label = $user->display_name . ' (' . $option->count . ')';
          }
        }
      }
      return $input_object;
    }
    add_filter('sf_input_object_pre', 'filter_function_name', 10, 2);

    Should I remove the first part of that code and only have the part you gave me?

    The “All Authors” dropdown is still not recognizing additional authors, i.e. Wael (only ones in the first position on a post). And the search field is not recognizing them either. Thanks again for your quick responses.


    Trevor
    Participant

    Ok, so it must go in the file you suggested.

    The only bock of code you would have need to add was this, I think:

    function filter_function_name($input_object, $sfid) {
      if ($input_object['name'] == '_sft_author') {
        global $coauthors_plus;
        foreach($input_object['options'] as $key => $option) {
          if($option->value=="") {
            $option->label = "All Authors";
          } else {
            $user = $coauthors_plus->get_coauthor_by( 'user_nicename', $option->value );
    	$input_object['options'][$key]->label = $user->display_name . ' (' . $option->count . ')';
          }
        }
      }
      return $input_object;
    }
    add_filter('sf_input_object_pre', 'filter_function_name', 10, 2);

    The question is, is that code working? Does the field show ‘All Authors’ in the choice box?

    If so, if you edit just that one line to change that label, does it then change in the front end?


    Anonymous
    Inactive

    Thanks for your quick response, Trevor. However, I had tried that solution before posting here and it did not work for me. I’m using a child of the Visual Theme. When adding the CoAuthors plugin to the site, this was the code I added into my template-tags.php file in my child theme:

    if ( ! function_exists( 'visual_posted_on' ) ) :
    /**
     * Integrate Co-Authors Plus with TwentyTen by replacing twentyten_posted_on() with this function
     */
    function visual_posted_on() {
        if ( function_exists( 'coauthors_posts_links' ) ) :
            printf( __( '%2$s &nbsp;<span style="color:#999;">/</span>&nbsp; %3$s', 'visual' ),
                'meta-prep meta-prep-author',
                sprintf( '<span class="entry-date">%3$s</span>',
                    get_permalink(),
                    esc_attr( get_the_time() ),
                    get_the_date()
                ),
                coauthors_posts_links( null, null, null, null, false )
            );
        else:
            printf( __( '%2$s &nbsp;<span style="color:#999;">/</span>&nbsp; %3$s', 'visual' ),
                'meta-prep meta-prep-author',
                sprintf( '<span class="entry-date">%3$s</span>',
                    get_permalink(),
                    esc_attr( get_the_time() ),
                    get_the_date()
                ),
                sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
                    get_author_posts_url( get_the_author_meta( 'ID' ) ),
                    esc_attr( sprintf( __( 'View all posts by %s', 'visual' ), get_the_author() ) ),
                    get_the_author()
                )
            );
        endif;
    }
    endif;

    Then, I added the Trial by Fire code after:

    // Trial by fire
    
    function filter_function_name($input_object, $sfid) {
    
    	if ($input_object['name'] == '_sft_author') {
    
    		global $coauthors_plus;
    		
    		//udpate this field before rendering
    
    			foreach($input_object['options'] as $key => $option) {
    
    				if($option->value=="")
    					{//the option with no value is always the "all items" or unselected state
    						$option->label = "All Authors";
    					}
    
    				else {
    
    				$user = $coauthors_plus->get_coauthor_by( 'user_nicename', $option->value );
    
        			$input_object['options'][$key]->label = $user->display_name . ' (' . $option->count . ')';
    
        			}
    
            	}
    
    	}
    	
    	return $input_object;
    
    }
    
    add_filter('sf_input_object_pre', 'filter_function_name', 10, 2);

    But still no dice. I’m not sure what I’m missing here, but what should be happening is that when I search for Wael in the search box or even in the dropdown Authors box he should be appearing. But he is not. I would appreciate any further help you can provide. I am stumped.

    #205996

    Anonymous
    Inactive

    Hi, I have a requirement for a search to select posts (staff members) from their second name letter.

    So a list of radio inputs – A B C D… Z

    When you click on a letter it would filter the post search and only show people who’s second name begin with that letter.

    I’m sure this is possible but please can you point in the right direction!

    I have been looking at the sf_input_object_pre filter

    This seems like the correct one to use.

Viewing 10 results - 71 through 80 (of 137 total)