Skip to content

Instantly share code, notes, and snippets.

@bramchi
Last active November 1, 2022 12:07
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bramchi/d0767c32a772550486ea to your computer and use it in GitHub Desktop.
Save bramchi/d0767c32a772550486ea to your computer and use it in GitHub Desktop.
Roots.io searchform.php template hack to get search widget working in Polylang, only searching within the active language. 'soil-nice-search' disabled btw.
<?php
/*
*
* Roots.io searchform.php template hack to fix Polylang search
*
* Note: Polylang setting 'Hide URL language info for default language' should be enabled for this to work.
* Soil-nice-search disabled in Roots.
*
*/
if(function_exists('pll_current_language')){
$current_language = pll_current_language();
$default_language = pll_default_language();
if($current_language != $default_language){
$language_subdir = $current_language.'/';
} else {
$language_subdir = '';
}
}
?>
<form role="search" method="get" class="search-form form-inline" action="<?php echo esc_url(home_url('/'.$language_subdir)); ?>">
<label class="sr-only"><?php _e('Search for:', 'roots'); ?></label>
<div class="input-group">
<input type="search" value="<?php echo get_search_query(); ?>" name="s" class="search-field form-control" placeholder="<?php _e('Search', 'roots'); ?> <?php bloginfo('name'); ?>">
<span class="input-group-btn">
<button type="submit" class="search-submit btn btn-default"><?php _e('Search', 'roots'); ?></button>
</span>
</div>
</form>
@89gsc
Copy link

89gsc commented Nov 1, 2022

Just wanted to point out, your checking if a function exists (good) then setting a variable.

Then you use $language_subdir without checking if it exists, in the case of the function check failing this would be null and depending on your config throw an error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment