Überprüfen, ob Beitragstitel als Schleifenkriterium eindeutig ist

Ich versuche, ein scheinbar einfaches Stück PHP zu machen (es wird in ein Gravity Forms Feld ausgegeben, aber das ist im Grunde irrelevant).

Ich benutze Gravity Forms, um Posts zu erstellen, was ich leicht machen kann, aber ich möchte, dass jeder Post einen eindeutigen Titel hat (so navigiert der Benutzer).

Ich habe es geschafft, das für die Registrierung funktionierend zu bekommen, indem ich überprüfe, ob die Benutzerregistrierungs-ID (auch der Posttitel in dieser Situation) bereits verwendet wurde, so:

{// Erstellt die vollständige Benutzer-ID-function build_id ($ pcode_id, $ assigned_id_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; 

}

// Nimmt eine Zeichenkette und fügt viele Nullen (oder andere Zeichen) links von der Zeichenkettennummer ($ number, $ n) ein {return str_pad ((int) $ number, $ n, “0”, STR_PAD_LEFT) ); }}

$ pcode_id ist nur ein formatierter Postcode als String und $ assigned_id_no ist einfach eine Loop-Nummer, übergibt im Grunde 1.

Wie Sie sehen können, ist das While-Kriterium vorhanden, aber für das Leben von mir kann ich das nicht simulieren, indem ich einfach den Post-Typ überprüfe.

Die nächste, die ich habe, ist get_page_by_title () und wenn es null ist, dann beende else loop, aber es funktioniert nicht:

{function home_patient_id () {$ post_id = $ _GET [‘home_id’]; $ home_post_code = get_post_meta ($ post_id, “wpcf-home-post-code”, true); $ home_post_code = format_id ($ home_post_code); $ home_post_code = build_home_id ($ home_post_code, 1);

 return $home_post_code; 

}

// Erstellt die vollständige Benutzer-ID-function build_home_id ($ pcode_id, $ assigned_id_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; 

}}

Ich habe auch versucht zu überprüfen, ob es Null zurückgibt, aber nichts funktioniert, ich bekomme entweder nichts oder eine Endlosschleife.

Kann mir bitte jemand helfen, dass ich mir dabei die Haare rausziehe!

Danke vielmals.

Solutions Collecting From Web of "Überprüfen, ob Beitragstitel als Schleifenkriterium eindeutig ist"

Falls jemand sich wundern sollte, habe ich das mit einem pointers über var_dump () behoben. Hier ist die modifizierte Schleife.

 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; } 

Das Problem ist, dass get_page_by_title () ein Objekt und keine Zeichenfolge zurückgibt. Hoffe, das hilft jemandem.