Vergleichen von zuvor gespeichertem post_title mit post-saved post_title

Ich implementiere einen Inventaraktualisierer auf einer WordPress-Produktseite, die über ihre benutzerdefinierte API in die Website eines Drittanbieters integriert werden kann. Wir werden eine Reihe von Leuten die Website von Drittanbietern aktualisieren lassen, und ich muss eine automatische Aktualisierung auf unserer Produktseite einrichten, so dass Änderungen am Inventar auf der Website von Drittanbietern auf unserer Produktseite widergespiegelt werden.

Ich habe meistens alles funktioniert wie ein Charme (Cron Job und so), aber ich habe einige Schwierigkeiten mit der Aktualisierung der post_title. WordPress bereinigt den post_title, wenn ein bestimmter Post (Produktposttyp) gespeichert wird. Ich möchte in der Lage sein, den Namen eines Produkts auf der Website eines Drittanbieters zu aktualisieren und diesen neuen Wert dann automatisch auf unserer Produktseite zu speichern. Ich verwende wp_update_post, um dies zu erreichen:

$updatedPostId= wp_update_post( array( 'ID' => $thisId, 'post_title' => $newTitle ) ); 

Mein Problem tritt auf, wo ich den post_title nicht zu jedem einzelnen Produkt-Post speichern möchte, wenn ich das nicht benötige (derzeit verdoppelt sich die Laufzeit meines Cron-Jobs mehr als). Also versuche ich den $ newTitle mit dem aktuellen Titel in WordPress zu vergleichen. Ich mache das mit der PHP-function “strcmp”:

 if( ($newTitle!='')&& (strcmp($newTitle, get_the_title($thisId))!=0) ) 

Wenn diese Aussage als wahr ausgewertet wird, rufe ich wp_update_post auf, das ich oben gezeigt habe. Mein Problem ist, dass der Wert des Produktnamens von der 3rd-Party-Website nicht gleichbedeutend mit der WordPress-Produktseite post_title für eine Reihe von Produkten ist (etwa 2000 Produkte auf der Website haben und diese Prüfung für etwa 100 fehlschlägt) von ihnen). Ich habe mir die Titel selbst angeschaut und sie sehen in den meisten Fällen identisch aus:

 Eg: From 3rd party: Arnold Iron Whey [2 LBS] [Cookies & Cream] From WordPress: Arnold Iron Whey [2 LBS] [Cookies & Cream] (Note: My text editor highlights the ampersand and the space immediately after it in the 3rd-party product name but not in the one from WordPress) 

strcmp evaluiert jedoch nicht auf Null, also weiß ich, dass es etwas Unterschiedliches zwischen ihnen gibt, das nur der Computer verstehen kann. Schade, ich kann unsichtbare Zeichen nicht lesen.

Also, ich muss den Produktnamen von der 3rd-Party-Website “sanisieren”, so dass es als identisch mit dem bereits sanierten WordPress post_title bewertet wird, wenn es durch strcmp passiert. Was muss ich tun, um dies zu erreichen? Ich fand eine Option (sanitize_text_field), die ungefähr 20 dieser Fehlalarme beseitigte, aber ich arbeite jetzt ungefähr einen halben Tag daran, und ich komme einer Antwort, die noch funktioniert, nicht näher.

Gerade jetzt, diese ~ 100 Produkte haben ihre post_Titel mit jedem Lauf von meinem cron_job immer wieder gespeichert, was ich lieber vermeiden würde. Wenn überhaupt möglich.

Solutions Collecting From Web of "Vergleichen von zuvor gespeichertem post_title mit post-saved post_title"

Nun, ich bekam nie etwas dazu und ging mit der function sanitize_title, die restriktiver ist als ich will (verarbeitet den in einer URL zu verwendenden Titel – gibt im Grunde einen Slug für den Beitrag zurück), aber es ist die beste Lösung Ich habe es gefunden. Indem ich sowohl den Produktnamen des Drittanbieters als auch den post_title von WordPress durch sanitize_title liefere und dann mit strcmp vergleiche, bin ich nahe genug gekommen, um die beiden Strings effektiv vergleichen zu können. Zugegeben, dies mag kleine Unterschiede vermissen, wie zum Beispiel Änderungen der Interpunktion, aber es wird die wichtigen Unterschiede (textuell) erhalten, ohne dass ich daran denke, dass ich diese Namen immer wieder unnötig speichere.