我正在创建一个插件。我想在网址中传递参数,或者您可以说我想要同一页面的多个网址(但这会加载相同的网页非重定向)。 例如: http://www.ijmsbr.boxysolutions.com/publications-of-ijmsbr/?data=2016-11 我想在这个结构中使用此URL http://www.ijmsbr.boxysolutions.com/publications-of-ijmsbr/2016-11/
这些将是多个链接,如
但是所有链接都应该加载这一页 出版物-的-ijmsbr /
http://www.ijmsbr.boxysolutions.com/publications-of-ijmsbr/
这是我的自定义页面。我想在我的页面上获得这些参数(/ 2016-11 /,/ 2016-12 /)。
答案 0 :(得分:1)
<强>解决强>
首先,我们将添加过滤器来设置查询变量。请记住,每次在数组中添加新变量时,都要调用 flush_rewrite_rules()。之后运行flush_rewrite_rule函数后,您可以注释或删除此行。
function themeslug_query_vars( $qvars ) {
$qvars[] = 'jm_volume';
$qvars[] = 'jm_art_id';
$qvars[] = 'jm_author';
//flush_rewrite_rules();
return $qvars;
}
add_filter( 'query_vars', 'themeslug_query_vars' , 10, 1 );
在注册查询变量后,我们可以添加 add_rewrite_rules 并像这样分配给我们的网址。 请记得调用flush_rewrite_rules()函数
function add_rewrite_rules($aRules) {
$aNewRules = array(
'publications-of-ijmsbr/article/(.*)?' => 'index.php?pagename=publications-of-ijmsbr&jm_art_id=$matches[1]',
'publications-of-ijmsbr/author/(.*)?' => 'index.php?pagename=publications-of-ijmsbr&jm_author=$matches[1]',
'publications-of-ijmsbr/(.*)?' => 'index.php?pagename=publications-of-ijmsbr&jm_volume=$matches[1]'
);
$aRules = $aNewRules + $aRules;
//flush_rewrite_rules();
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');