Aktualisieren Sie die Post-Metadaten (benutzerdefiniertes Feld) per Postlink

Ich habe einen Beitrag in meiner WordPress-Website, die viele benutzerdefinierte Felder enthält. Ich habe ein Excel-Blatt mit “post link” – “benutzerdefinierte Felddaten” Kombination. Dieses benutzerdefinierte Feld (Video-URL) ist bereits für jeden Post festgelegt, aber jetzt muss ich diese Links basierend auf dem Excel-Blatt ändern und aktualisieren. Ich habe keine “post_id – post Metadaten” -Kombination, nur Link und entsprechenden Metadatenwert.

Gibt es eine Möglichkeit, diese Daten mit Code zu aktualisieren?

Solutions Collecting From Web of "Aktualisieren Sie die Post-Metadaten (benutzerdefiniertes Feld) per Postlink"

Ich habe das nicht getestet, aber die Idee ist, die Post-ID basierend auf der Post-URL zu finden und dann das Meta-Feld für diesen Post zu aktualisieren.

Ich würde das Excel als CSV-Format speichern. Importieren Sie es in eine neue Tabelle in Ihrer database. Auf diese Weise können Sie leicht auf diese Informationen zugreifen, anstatt eine Excel-Datei lesen zu müssen (was möglicherweise zusätzliche PHP-classn erforderlich machen würde).

Sobald Sie die Excel-Daten in der database haben, können Sie diese Daten abrufen und in einer Schleife ausführen.

Beispielsweise:

global $wpdb; //You can use $wpdb to query non-wordpress tables //Here I query I table I created video_urls //It has two columns. One with the post url, and one with the video url $results = $wpdb->get_results('SELECT * FROM video_urls', OBJECT); //Loop through each result foreach($results as $result){ //use the wordpress function url_to_postid() to get the post id $post_id = url_to_postid($result->post_url); //update the post_meta with the wordpress function below //you will need to know the name of the custom field. update_post_meta($post_id, "NAME_OF_CUSTOM_FIELD", $result->video_url); } 

Dies sollte funktionieren, aber bitte nicht einfach kopieren und einfügen und erwarten, dass es funktioniert . Erstellen Sie außerdem eine Sicherungskopie Ihrer database, bevor Sie Skripts ausführen, die versuchen, WordPress-Posts massenweise zu aktualisieren.

Dieser Code kann in eine Ihrer Seitenvorlagen eingefügt werden. Anschließend können Sie diese Seite nur laden, um den Code einmal auszuführen, und den Code später auskommentieren, damit er nicht mehr ausgeführt wird.