检查帖子标题作为循环标准是否唯一

时间:2012-08-23 作者:Dave Legassick

我正在尝试制作一个看似简单的php(它输出到重力表单字段,但这基本上无关紧要)。

我使用重力表单创建帖子,这很容易做到,但是我希望每个帖子都有一个唯一的标题(因为这是用户导航的方式)。

我通过检查用户注册id(在这种情况下也是帖子标题)是否已经在使用,成功地实现了注册,如下所示:

{//生成完整的用户idfunction build\\u id($pcode\\u id,$assigned\\u id\\u no){

 do {
        $cmplt_id = $pcode_id . "-" . number_pad($assigned_id_no, 3);  // Gets postcode string and calls the number padding function to add the leading 0\'s
         $assigned_id_no++; // Increase assigned_id_no
    }
    while(username_exists($cmplt_id));  // Restart loop if username_exists is true
    return $cmplt_id;

return $cmplt_id;
}

//获取一个字符串,并在stringfunction number\\u pad($number,$n){返回str\\u pad((int)$number,$n,“0”,str\\u pad\\u left);}

$pcode\\u id只是一个字符串格式的邮政编码,$assigned\\u id\\u no只是一个循环数,基本上通过1。

正如你所看到的,while的标准是,这是否存在,但就我而言,我无法通过简单地检查帖子类型来模仿这一点。

最近的一个是get\\u page\\u by\\u title(),如果为null,则完成else循环,但它不起作用:

{函数home\\u patient\\u id(){$post\\u id=$\\u GET[\'home\\u id];$home\\u post\\u code=GET\\u post\\u meta($post\\u id,“wpcf home post code”,true);$home\\u post\\u code=format\\u id($home\\u post\\u code);$home\\u post\\u code=build\\u home\\u id($home\\u post\\u code,1);

return $home_post_code;
}

//生成完整的用户idfunction build\\u home\\u id($pcode\\u id,$assigned\\u id\\u no){

 do {
        $cmplt_id = $pcode_id . "-" . number_pad($assigned_id_no, 3);  // Gets postcode string and calls the number padding function to add the leading 0\'s
         $assigned_id_no++; // Increase assigned_id_no
         $exist = get_page_by_title($cmplt_id);
        }
    while(get_page_by_title($cmplt_id));    // Restart loop if username_exists is true
    return $cmplt_id;

return $cmplt_id;
}}}

我还试着检查它是否返回null,但没有任何结果,我要么什么都没有得到,要么是一个无限循环。

谁能帮帮我吗?我正为此发火呢!

非常感谢。

1 个回复
SO网友:Dave Legassick

如果有人想知道,我用一个关于使用var\\u dump()的指针解决了这个问题。这是修改后的循环。

function build_home_id ($pcode_id, $assigned_id_no) {

//$cmplt_id = $pcode_id . "-" . number_pad($assigned_id_no, 3);  // Gets postcode string and calls the number padding function to add the leading 0\'s

do {
        $cmplt_id = $pcode_id . "-" . number_pad($assigned_id_no, 3);  // Gets postcode string and calls the number padding function to add the leading 0\'s
        $assigned_id_no++; // Increase assigned_id_no
        $existing = get_page_by_title($cmplt_id, OBJECT, "patient");
        $existing_post = $existing->post_title;
}
    while($cmplt_id == $existing_post);    // Restart loop if built id matches any already in existance
    return $cmplt_id;

}
问题是get\\u page\\u by\\u title()返回的是一个对象,而不是字符串。希望这对别人有帮助。

结束

相关推荐

将PHP处理程序更改为DSO-奇怪的自定义字段问题

我的网站有问题。主页列出了分类的文章(外部链接),还提到了文章来源(文章发布的网站)。这些源是我在wordpress post编辑器中填充的自定义字段。问题是,现在每篇文章都显示了相同的来源,而我为每篇文章提到了不同的来源。自从我将PHP处理程序更改为DSO以来,奇怪的事情一直在发生。问题发生在我更换处理程序之后,所以我很怀疑这是否与此相关。您是否看到了解决此问题的方法?谢谢