Multiple endpoints in one URL

时间:2016-04-08 作者:Robbert

我正在尝试在一个url中添加多个端点,如:

http://localhost:1000/manage-lead/lead_id/1000/product_id/123455

但这样一来,查询变量lead_id 等于1000/product/123455 而不是1000.

当我按以下方式操作时,一切都正常:

http://localhost:1000/manage-lead/lead_id/1000/?product_id=123455

所以我认为我需要添加一些重写规则,以便Wordpress理解lead\\u id和product\\u id是两个查询变量。

How I add my endpoints:

function add_lead_management_endpoints() {

    add_rewrite_endpoint( \'lead_id\', EP_PAGES );
    add_rewrite_endpoint( \'product_id\', EP_PAGES );

}
add_action( \'init\', \'add_lead_management_endpoints\' );

1 个回复
最合适的回答,由SO网友:Elliott 整理而成

不确定这篇文章的上下文,是自定义帖子类型还是仅仅是一个页面?

这可能是你在找的东西-

function add_lead_management_endpoints() {
    add_rewrite_rule(
        \'manage-lead/lead_id/([0-9]{1,})/product_id/([0-9]{1,})\',
        \'index.php?pagename=manage-lead&lead_id=$matches[1]&product_id=$matches[2]\',
        \'top\'
    );

    add_rewrite_tag( \'%lead_id%\', \'([^&]+)\' );
    add_rewrite_tag( \'%product_id%\', \'([^&]+)\' );
}
add_action( \'init\', \'add_lead_management_endpoints\' );
您需要刷新永久链接才能使其生效(访问设置->永久链接)。