Adding a hook to ‘parse_request’ so that siteurl/pagename/xyz ignores “xyz”

I would just add a rewrite rule rather than try to modify query parsing.

function wpd_series_query_var( $vars ){
    $vars[] = 'wpd_series';
    return $vars;
}
add_filter( 'query_vars', 'wpd_series_query_var' );

function wpd_series_rewrite_rule() {
    add_rewrite_rule(
        '^series/([^/]+)/?$',
        'index.php?pagename=series&wpd_series=$matches[1]',
        'top'
    );
}
add_action( 'init', 'wpd_series_rewrite_rule' );

Don’t forget to flush_rewrite_rules() after adding new ones.

You can then get wpd_series anywhere after the parse_query action with get_query_var('wpd_series').

Leave a Comment