重写规则不起作用的动态URL

时间:2020-05-30 作者:elimariaaa

我正在尝试更新以下链接:https://dev.brunchwork.com/next-event/?eb_event_id=106098978902对此:https://dev.brunchwork.com/next-event/[guest_name_here]/[event_id_here]

在此之后discussion, 我想出了以下代码:

在我的功能中。php:

/*rewrite rule*/
function custom_rewrite_rule() {
    add_rewrite_rule(\'^next-event/([^/]*)/([^/]*)/?\',\'index.php?page_id=69&guest_name=$matches[1]&event_id=$matches[2]\',\'top\');
}

add_action(\'init\', \'custom_rewrite_rule\', 10, 0);


add_filter(\'query_vars\', \'add_query_vars\');
function add_query_vars($aVars) {
    $aVars[] = "guest_name";
    $aVars[] = "event_id";
    return $aVars;
}
/*end rewrite rule*/
在我的下一个活动页面中:

/*
Template Name: Single Event Template (updated)
*/

get_header();

global $wp_query;

$guest_name = $wp_query->query_vars[\'guest_name\'];
$test_eb_event_id = $wp_query->query_vars[\'event_id\'];

echo $guest_name;
echo $test_eb_event_id;
当我尝试测试URL时,重写不起作用。我还单击了permalinks页面中的save按钮来应用更改。

所以当我进入时:https://dev.brunchwork.com/index.php?page_id=69&guest_name=test&event_id=123

我明白了https://dev.brunchwork.com/next-event/?guest_name=test&event_id=123

非常感谢您的帮助。非常感谢!

1 个回复
SO网友:elimariaaa

我的代码没有问题。可能它没有立即刷新,因此更改没有立即传播。

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http