最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

query - Rewrite Query_Var URL Parameter with Slug

programmeradmin1浏览0评论

I have a query_var set up for a search results page where my query_var is a taxonomy id used in a WP_Query loop, like:

~/results/?my_taxoqueryvar=123

I would like to implement a rewrite rule so that I can rewrite this so that it's a SEO friendlier, like:

~/results/my-taxo-slug/ (where 'my-taxo-slug' is the corresponding slug for the taxonomy with ID 123.

I also want to be able to access my query var (i.e. $qv_exp_type = get_query_var('my_taxoqueryvar');

This is what I have so far, but it doesn't appear to be working

// Add Query Var
function my_queryvar_params( $query_v ) {
    $query_v[] = "my_taxoqueryvar";
    return $query_v;
};
add_filter('query_vars',  'my_queryvar_params');


// Add Endpoint
function my_endpoint(){
    add_rewrite_endpoint( 'my_taxoqueryvar', EP_PAGES );
}
add_action( 'init', 'my_endpoint' );

function  my__rewrite_rule() {
    add_rewrite_rule(
        'results/([a-z]+)/?$',
        'index.php?pagename=results&my_taxoqueryvar=$matches[1]',
        'top'
    );
}
add_action('init',  'my_rewrite_rule' );

HUGE thanks in advance!

I have a query_var set up for a search results page where my query_var is a taxonomy id used in a WP_Query loop, like:

~/results/?my_taxoqueryvar=123

I would like to implement a rewrite rule so that I can rewrite this so that it's a SEO friendlier, like:

~/results/my-taxo-slug/ (where 'my-taxo-slug' is the corresponding slug for the taxonomy with ID 123.

I also want to be able to access my query var (i.e. $qv_exp_type = get_query_var('my_taxoqueryvar');

This is what I have so far, but it doesn't appear to be working

// Add Query Var
function my_queryvar_params( $query_v ) {
    $query_v[] = "my_taxoqueryvar";
    return $query_v;
};
add_filter('query_vars',  'my_queryvar_params');


// Add Endpoint
function my_endpoint(){
    add_rewrite_endpoint( 'my_taxoqueryvar', EP_PAGES );
}
add_action( 'init', 'my_endpoint' );

function  my__rewrite_rule() {
    add_rewrite_rule(
        'results/([a-z]+)/?$',
        'index.php?pagename=results&my_taxoqueryvar=$matches[1]',
        'top'
    );
}
add_action('init',  'my_rewrite_rule' );

HUGE thanks in advance!

Share Improve this question edited Dec 21, 2016 at 15:44 Ryan Dorn asked Dec 21, 2016 at 14:10 Ryan DornRyan Dorn 3699 silver badges23 bronze badges
Add a comment  | 

1 Answer 1

Reset to default -1

Your rewrite rule and query vars filter is wrong. Below is an example based on your query var my_taxoqueryvar

function add_query_vars_filter( $vars ){
    $vars[] = "my_taxoqueryvar";
    return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

add_action('init', 'myplugin_rewrite_rule' );
function myplugin_rewrite_rule() {
    add_rewrite_rule(
        'results/([a-z]+)/?$',
        'index.php?pagename=results&my_taxoqueryvar=$matches[1]',
        'top'
    );
}
发布评论

评论列表(0)

  1. 暂无评论