web-dev-qa-db-ger.com

Benennen Sie vorhandene alte hochgeladene Bilder mit französischen Akzentzeichen um (nicht während des Uploads)

Müssen mehr als 1.000 Bilder mit französischen Zeichen aktualisieren.

Folgendes hat für einen Testbeitrag funktioniert:

  • Erstellt eine Kopie des Bildes ohne die FR-Zeichen
  • Der Dateiname im Blog-Post wurde mit wp_update_post (WP-Funktion) aktualisiert.
  • 'Anhang-Metadaten' mit wp_update_attachment_metadata aktualisiert (WP-Funktion)
  • 'Angehängte Datei' mit update_attached_file aktualisiert (WP-Funktion)

Es sieht so aus, als könnte ich einfach Folgendes überspringen:

  • 'Anhang-Metadaten' mit wp_update_attachment_metadata aktualisiert (WP-Funktion)
  • 'Angehängte Datei' mit update_attached_file aktualisiert (WP-Funktion)

und ändern Sie einfach den Inhalt des Beitrags, sodass er mit dem folgenden Code auf die neuen Bilder verweist:

// Array used to update the post
$my_post = array(
  'ID' => $post_ID,
  'post_content' => $content_with_updated_file_name
);

// Update post content using the array above
wp_update_post( $my_post, true );
if (is_wp_error($post_ID)) {
    $errors = $post_ID->get_error_messages();
    foreach ($errors as $error) {
        echo $error;
    }
}

Ist das der richtige Weg oder sollte ich die 'Anhang-Metadaten' und die 'angehängte Datei' für jedes Bild, das ich umbenenne, aktualisieren?

2
Robert Sinclair

Nun, alles hängt von Ihrem Anwendungsfall ab - kann das Umbenennen in großen Mengen mit Regex durchgeführt werden? Wenden Sie dann denselben regulären Ausdruck auf die Datenbank an, indem Sie beispielsweise http://wp-cli.org/commands/search-replace/ verwenden.

Wenn Sie es manuell machen müssen, schauen Sie sich vielleicht https://wordpress.org/plugins/media-file-renamer/ an.

Viel Glück!

2
Quasel

Ich gehe davon aus, dass Sie ein Skript zum Umbenennen von über 1000 Bildern verwendet haben, sodass Sie wahrscheinlich dieselben Regeln auf eine MySQL-Aktualisierungsabfrage in den Tabellen wp_postmeta und wp_posts anwenden können, indem Sie eine REGEX- oder eine Reihe von REPLACE()-Anweisungen verwenden.

Sie können dies mit einem SQL-GUI-Tool in phpMyAdmin oder mit WP CLI tun.

Spart das Herumspielen mit Wordpress-Funktionen.

2