我正在创建一个需要 slug 系统的系统。例如,标题为“博客标题:此处”的博客文章的 URL 将是:
YYYY/MM/DD/the-blog-title-here
我的系统设置得很好,如果你的 URL 匹配多个条目,它会显示所有匹配条目的摘要,如果它只匹配一个条目,它会显示完整条目,依此类推。我遇到的唯一麻烦是标题的“无懈可击”。目前,我只考虑第一个单词:我的 SQL 查询结束如下:
'AND subject LIKE '.$this->db->escape(substr($title,0,strpos($title,'-')).'%')
麻烦的是,如果同一天发布的两个帖子以相同的单词开头,则永远无法匹配单个条目。此外,如果一个帖子以“A”开头,而同一天发布的另一个帖子以字母 A 开头,则前一个帖子永远无法单独匹配。
我最初的想法是尝试将 slug 中的每个单词都与 a匹配LIKE %word%
,虽然这样更好,但它看起来很hackish并且仍然不完美(“A slug:麻烦!”和“A麻烦的slug”会发生冲突)。这个问题有优雅的解决方案吗?