我在Wordpress网站上使用此结构作为我的帖子URL。
Domain.com/%post_id%/%postname%
如果删除/%postname%部分,您将转到同一页面? 我的意思是
Domain.com/post_id/postname = domain.com/post_id
用户访问domain.com/post_id时是否有任何方式重定向到Domain.com/post_id/postname?
答案 0 :(得分:0)
不确定。
我建议在早期事件中添加action hook,也许wp
?
add_action("wp", function() {
if((is_single() || is_page()) && preg_match("!^/\d+/?$!", $_SERVER["REQUEST_URI"])) {
http_response_code(301);
header("Location: " . get_permalink());
exit;
}
});
这将在每个请求上运行并检查该请求是否是a)页面或帖子和b)REQUEST_URI(= URL的本地部分)以斜杠开头,后跟数字,后跟可选的最终斜杠,没有别的。如果满足这两个条件,它将返回HTTP 301响应代码(“Redirect Permanent”),其中Location头指示正确的URL。
将它放入你的functions.php。
有趣的是,WordPress会自动将/ 123 / postti重定向到/ 123 / posttitle,但对于/ 123它不会相同。 / 123 /将被重定向到/ 123。我发布的代码片段将处理/ 123和/ 123 /,而wordpress负责处理部分标题的代码片段。