我正在努力想要为我的博客获得一个完整的干净网址。现在我有一个像这样的网址:
http://example.com/post/44/post-name
这里“44”是我用来从数据库中获取正确帖子的帖子ID。
但是我看到wordpress博客的网址是这样的:
http://example.com/post-name
如何实现这一目标?因为我需要帖子ID / $ _GET ['id']才能得到帖子。
答案 0 :(得分:1)
您不一定需要ID来检索帖子。您只需要具有唯一值的索引属性。
要实现这一点,你的Post模型需要有一个" slug"属性。 slug属性可以基于您选择的任何其他属性或属性组合,但它通常基于" name"或"标题"属性。
因此,为了完成所有这些工作,当您创建新帖子时,您需要从名称/标题创建一个slug并将其与其他Post模型数据一起存储在DB中。在您的控制器操作中,您将从URL检索/ slug并查询具有相同slug的Post的db Post数据。
您还需要弄清楚处理重复的slu,因为它们需要是唯一的。也许这样的事情会起作用:/ slug-2
答案 1 :(得分:-1)
创建一个数据库表,将slugs映射到ID,然后从URL中的slug中查找ID。
创建博客时
INSERT INTO slugs_postids (slug, id) VALUES (?, ?);
然后当你进行查找时,
SELECT id FROM slugs_postids WHERE slug = ?;