Cara mudah melakukan redirect halaman blog WordPress bisa diterapkan di htaccess atau dengan menggunakan function redirect header PHP berikut. Pasang di file functions.php theme Anda, and save it:
// change global search rules search page, paged and feed
add_action( 'init', 'jv_change_search_base_wp' );
function jv_change_search_base_wp()
{
global $wp_rewrite;
$search_base = 'topic'; // search_base
if ( $wp_rewrite->search_base != $search_base )
{
$wp_rewrite->search_base = $search_base;
$wp_rewrite->search_structure = $wp_rewrite->search_base . '/%search%';
}
return $wp_rewrite;
}
// adding a new rule for empty search query
add_filter( 'search_rewrite_rules', 'jv_additional_search_rewrite_rules', 10, 1 );
function jv_additional_search_rewrite_rules( $rules )
{
global $wp_rewrite;
$new_rules = array(
user_trailingslashit( $wp_rewrite->search_base ) . '?$' => 'index.php?s=' . $wp_rewrite->preg_index(1),
);
$rules = $rules + $new_rules;
return $rules;
}
// flush_rules() if our rules are not yet included
add_action( 'wp_loaded', 'jv_flush_rules' );
function jv_flush_rules()
{
global $wp_rewrite;
$rules = get_option( 'rewrite_rules' );
$search_base = 'topic'; // search_base
if ( ! isset( $rules[ $search_base . '/(.+)/?$'] ) )
$wp_rewrite->flush_rules();
}
// redirect ?s= to search base
add_action( 'template_redirect', 'jv_template_redirect' );
function jv_template_redirect()
{
global $wp_rewrite;
if ( is_search() && isset ( $_GET['s'] ) )
{
$s = sanitize_text_field( $_GET['s'] ); // or get_query_var( 's' )
$location = '/';
$location .= trailingslashit( $wp_rewrite->search_base );
$location .= ( ! empty ( $s ) ) ? user_trailingslashit( urlencode( $s ) ) : '';
$location = home_url( $location );
wp_safe_redirect( $location, 301 );
exit;
}
}
Kode ini hanya untuk me-redirect url search default, dan khusus function wp_redirect bisa Anda terapkan pada berbagai parameter query atau redirect halaman tertentu. Semoga bermanfaat.
Update 30-03-2016
Fix flush rules
Tidak direkomendasikan untuk mengutak-atik core file WordPress