使用外部JSON查询重写URL

时间:2018-08-01 作者:Pierre

我编写了一个插件,可以从外部JSON源获取数据,并在列表中显示一些细节。可以单击每个项目以显示特定模板上的更多详细信息。为此,每个项目都有自己的URL,如下所示:http://localhost/details/?id=125

借助query\\u vars,get参数旨在从JSON源中检索更多数据。它工作顺利,但我希望URL可以这样重写:http://localhost/details/name-of-the-item/id

这可能吗?我该怎么做?(如果需要,我可以从列表页传递尽可能多的get参数)

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

你可以这样重写URL

add_action("wp_loaded", function () {


    add_rewrite_tag("%id%", "([^&]+)");

    add_rewrite_rule(
        \'^details/[^&]+/([0-9]+)/?\',
        \'index.php?id=$matches[1]&pagename=details\',
        \'top\'
    );


});
然后在设置->永久链接中刷新重写规则缓存一次。

通过这种重写,标识符不再位于$_GET 但你可以用https://codex.wordpress.org/Function_Reference/get_query_var.

结束