Fügen Sie ein benutzerdefiniertes Feld hinzu, um einen Teil der URL als Wert anzugeben

Ich möchte meine Website von einem anderen CMS zu WP verschieben. Es gibt keine nützliche Option für die Migration und den Export in meinem aktuellen CMS. Daher muss ich die Beiträge manuell neu erstellen. Ich werde wichtige Felder von Beiträgen auf dem aktuellen CMS in benutzerdefinierte Felder auf WP übertragen. Ich denke, einige PHP-functionen zu erstellen, die einige benutzerdefinierte Felder hinzufügen, um mit einigen Daten auf neue WP-Site zu veröffentlichen.

Wie ich schon sagte gibt es kein nützliches Export-Tool auf meinem aktuellen CMS (meistens Dateisystem), aber ich kann auf meinem aktuellen CMS-Post Link mit einigen hinzugefügten Variablen wie folgt machen:

www.my-site.com/category/subcategory/post-name?value-of-some-field

Dann werde ich meine eigene Seite crawlen, um eine Liste von Links mit dem Suffix “? Wert-von-einigen-Feld” zu finden und zu erstellen. Danach werde ich die Link-Liste auf den neuen Site-Standort auf der WP-Test-Site aktualisieren.

www.test-wp.my-site.com/category/subcategory/post-name?value-of-some-field

Dann möchte ich Code auf single.php Seite verwenden, um zu überprüfen, ob URL “? Wert-von-einigen-Feld” enthalten und wenn es wahr ist, ein benutzerdefiniertes Feld mit Daten “Wert-of-einige-Felder” zu machen.

Ich habe es erfolgreich geschafft, wenn ich weiß, welchen Wert ich erwarten kann, falls es mehrere, begrenzte Anzahl verschiedener Werte gibt:

 

Was ich brauche, ist ein Code, der ein neues benutzerdefiniertes Feld erstellen und Daten darin einfügen wird, die von der URL nach “?” Schild.

Zum Beispiel wenn URL wie folgt ist:

www.site.com/category/subcategory/post-name?hl=de eine Textbeschreibung wird hier sein

Programm wird diesen Link wie folgt crawlen und speichern:

www.site.com/category/subcategory/post-name?some%20textual%20description%20will%20be%20hier

Natürlich kann ich bei Bedarf in der URL einige START-, END-Marker setzen

www.site.com/category/subcategory/post-name?START__some%20textual%20description%20will%20be%20here__END

Was ich brauche, ist Code, der prüft, ob URL zwischen “START__” und “__END” enthält und ein neues benutzerdefiniertes Feld mit Text zwischen “START__” und “__END” erstellt, und wenn “% 20” durch Leerzeichen ersetzt werden kann “”.

In diesem Beispiel wird ein neues benutzerdefiniertes Feld mit dem Wert “einige Textbeschreibung wird hier sein” erstellt.

Solutions Collecting From Web of "Fügen Sie ein benutzerdefiniertes Feld hinzu, um einen Teil der URL als Wert anzugeben"

Ich fand diese Lösung, es funktioniert großartig. Ich werde es hier teilen, wenn jemand anderes es braucht.

 $currenturl = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; $id = $post->ID; if ( preg_match('/\?(.+)$/', $currenturl, $matches) ) { $value = urldecode($matches[1]); add_post_meta($id, 'my_new_custom_field_name', $value, true); }