制作一个独特的帖子

Joh*_*hny 6 php slug

我在放置的功能很少,但是没有按照我想要的方式工作.

根据帖子标题,即时自动创建slug.

示例:如果帖子标题是"测试",那么slug将是"test"

我的问题是,如果他们重复输入帖子标题"测试",这意味着slug也会被复制.出于这个原因,我已经创建了2个函数来为我处理这个问题.

此函数检查数据库中是否存在slug

function slug_exist($x){
    global $db;
        $sql = "SELECT post_name FROM posts WHERE post_name=\"$x\"";
        $query = $db->select($sql);
            if($db->num_rows() > 0){
                return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果slug确实存在于数据库中,那么我使用这个函数给slug一个唯一的名字

    if(slug_exist($slug)){
        $rand = rand(10,50);
        $slug = $slug."-".$rand;
            return $slug;
    }
Run Code Online (Sandbox Code Playgroud)

那么当slug将获得独特的slug名称时,它就像 Example: test-244

我希望slug是按数字顺序而不是随机顺序.

**Example:**

Post Title is "Test"
Slug is "test-1"

Post Title is "Test"
Slug is "test-2"

Post Title is "Test"
Slug is "test-3"
Run Code Online (Sandbox Code Playgroud)

这是我知道如何详细解释的唯一方式,如果您不确定要采取什么,请告诉我.谢谢!

mcu*_*ros 10

这是一个非常标准的代码,只需要一个小循环:

$i = 1; $baseSlug = $slug;
while(slug_exist($slug)){
    $slug = $baseSlug . "-" . $i++;        
}

return $slug;
Run Code Online (Sandbox Code Playgroud)