-
-
Save g14nnakal/89e67cf4c468f9cbd11a5aaa823af375 to your computer and use it in GitHub Desktop.
Ganti search permalink di wordpress dari ?s=key1+key2 redirect ke /info/key1-key2/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Tambahkan semua fungsi ini pada functions.php di theme maupun child_theme | |
* Setelah itu jangan lupa untuk masuk ke settings -> permalink dan save. | |
*/ | |
function idtheme_add_rewrite_rules( $wp_rewrite ){ | |
$new_rules = array('^search/(.+)\$' => 'index.php?s=' .$wp_rewrite->preg_index(1)); | |
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules; | |
} | |
add_action('generate_rewrite_rules', 'idtheme_add_rewrite_rules'); | |
function idtheme_filter_search_query(){ | |
global $wp; | |
if (!empty($wp->query_vars['s'])){ | |
$wp->set_query_var('s', str_replace('-',' ',$wp->query_vars['s'])); | |
} | |
} | |
add_action('parse_request', 'idtheme_filter_search_query'); | |
function idtheme_change_search_string( $search_rewrite ) { | |
if( !is_array( $search_rewrite ) ) | |
return $search_rewrite; | |
$new_array = array(); | |
$searchpermalink = 'info/'; | |
foreach( $search_rewrite as $pattern => $_s_query_string ) | |
$new_array[ str_replace( 'search/', $searchpermalink, $pattern ) ] = $_s_query_string; | |
$search_rewrite = $new_array; | |
unset( $new_array ); | |
return $search_rewrite; | |
} | |
add_filter( 'search_rewrite_rules', 'idtheme_change_search_string'); | |
function idtheme_change_seach_parse_query() { | |
global $wp_query; | |
// redirect | |
if(!is_admin() && is_search() && isset($_GET['s'])) { | |
ob_end_clean(); | |
$change = array('+',' ','%20'); | |
$searchpermalink = 'info/'; | |
$redirect = home_url($searchpermalink) . '' . str_replace($change, '-' ,$_GET['s']); | |
header("HTTP/1.1 301 Moved Permanently"); | |
header("Location: $redirect"); | |
die; | |
} | |
} | |
add_action( 'parse_query', 'idtheme_change_seach_parse_query' ); | |
function idtheme_change_search_term( $search_term ) { | |
if(!is_admin() && is_search()){ | |
$search_term = str_replace('-', ' ', $search_term); | |
return $search_term; | |
} | |
} | |
add_filter( 'get_search_query','idtheme_change_search_term' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment