-
-
Save g14nnakal/6086351162a55213abc08c2d1380e891 to your computer and use it in GitHub Desktop.
Ganti search permalink di wordpress dari ?s=key1+key2 redirect ke /info/key1-key2.html
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 di file functions.php 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_search_permalink_with_html() { | |
global $wp_rewrite; | |
if ( !strpos($wp_rewrite->get_search_permastruct(), '.html')){ | |
$wp_rewrite->search_structure = $wp_rewrite->search_structure . '.html'; | |
} | |
} | |
add_action('init', 'idtheme_search_permalink_with_html', -1); | |
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/'; | |
$html_option = '.html'; | |
$redirect = home_url($searchpermalink) . '' . str_replace($change, '-' ,$_GET['s']). ''.$html_option; | |
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); | |
$search_term = str_replace('html', '', $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