如何重写具有自定义参数的URL

时间:2018-11-19 作者:Max Stanworth

我一直在重写我的url。几天来一直在一起搜索黑客代码,但都没有结果,所以现在就寻求帮助。

我的url是:

https://domainname.com/topic/ux-process/?type=newsletter
我希望URL为:

https://domainname.com/topic/ux-process/type/newsletter
(“主题”是一种自定义分类法)

这篇文章似乎最简洁,但却无法发挥作用

https://code.tutsplus.com/articles/custom-page-template-page-based-on-url-rewrite--wp-30564

帮我做这件事会让我开心的。

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

您可以使用rewrite endpoint 为了这个。

第一步是在注册分类法时为自定义分类法提供端点掩码:

$args = [
    \'rewrite\' => [
        \'slug\' => \'topic\',
        \'ep_mask\' => EP_CATEGORIES
    ],
    // the rest of your args...
];
register_taxonomy( \'topic\', array( \'post\' ), $args );
下一步是添加端点。这个应该挂起来运行init, 就像你的分类注册码一样。

add_rewrite_endpoint( \'type\', EP_CATEGORIES );
添加此代码后,不要忘记刷新重写规则。最简单的方法是访问设置>永久链接页面。

您现在应该可以添加type/newsletter 在分类法链接的末尾。要访问传递的值,请使用get_query_var:

$type = get_query_var( \'type\', false );
如果代码当前希望查找type 在里面$_GET[\'type\'] 您无法更改该值,可以在尝试访问该值的代码之前手动设置该值:

$_GET[\'type\'] = get_query_var( \'type\', false );

结束

相关推荐

WordPress Custom URLs

根据maioman发布的链接,我对以下问题进行了修改:我很难使用自定义的帖子类型/分类法。我想要一个自定义的帖子类型的剧集,并且自定义帖子类型的分类是包含用户生成的术语的剧集。我能够剧集/自定义术语名称/工作。如果你转到这里,它会显示与此术语相关的所有帖子。然而,如果你在剧集/自定义术语名称/帖子标题上看到一篇帖子,我会看到404页。function episodes() { $labels = array( \'name\' => _