Pages

Monday, June 24, 2013

Redirect to home page if query string not match to value - wordpress


Please add below code to "functions.php" for generating the query string:

function add_query_vars($aVars) {
    $aVars[] = "mode";
    return $aVars;
}

add_filter('query_vars', 'add_query_vars');

function add_rewrite_rules($aRules) {
    $aNewRules = array('news/([^/]+)/?$' => 'index.php?pagename=news&mode=$matches[1]');
    $aRules = $aNewRules + $aRules;
    return $aRules;
}

add_filter('rewrite_rules_array', 'add_rewrite_rules');

function wp_redirect_to_homepage( $query ) {    
 if ( $query->is_main_query() && ( $query->query_vars['pagename'] == 'news') ){         
        if( ( array_key_exists( 'mode', $query->query_vars ) && (trim($query->query_vars['mode']) != 'follow' && trim($query->query_vars['mode']) != 'like'))) {
            wp_redirect( get_permalink($query->queried_object_id) );
            exit;
        }   
    }
}
add_action( 'parse_query', 'wp_redirect_to_homepage' );


Also you can see below URL:
http://stackoverflow.com/questions/14669336/redirect-if-wordpress-query-string-is-empty 
Its very good example for rewrite query string.

No comments: