wordpress add_rewrite_rule无法导航到正确的页面

时间:2015-11-16 14:53:45

标签: php wordpress

我需要更改此网址:" http://example.com/class-schedules?selectedCatId=52"成为:" http://example.com/class-schedules/classCSCP" ,但导航到不正确的页面。任何帮助!!

我使用此方法来重写网址

function events_custom_rewrite() {
add_rewrite_rule("class-schedules/classCPA/?", 'index.php?page_id=4321&selectedCatId=52', 'top');
}

1 个答案:

答案 0 :(得分:0)

您也需要add_rewrite_tag

请包含此代码并清除设置中的永久链接缓存。

function custom_rewrite_tag() {
  add_rewrite_tag('%selectedCatId%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);

function custom_rewrite_rule() {
    add_rewrite_rule('^class-schedules/classCPA/([^/]*)/([^/]*)/?','index.php?page_id=4321&selectedCatId=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);

使用此代码,您应该(我没有测试它!)访问您的网站,如下所示:

http://example.com/class-schedules/classCPA/52

在您的主题中,您可以像这样访问变量:

global $wp_query;
$selectedCatId = $wp_query->query_vars['selectedCatId']; //52
  

重要提示:不要忘记刷新并重新生成重写规则   修改规则后的数据库。从WordPress管理屏幕,   选择设置 - >永久链接,只需单击“保存更改”即可   变化。

https://codex.wordpress.org/Rewrite_API/add_rewrite_tag https://codex.wordpress.org/Rewrite_API/add_rewrite_rule