web-dev-qa-db-fra.com

Renommer les anciennes images téléchargées existantes contenant des caractères français accentués (pas pendant le téléchargement)

Besoin de mettre à jour plus de 1 000 images comportant des caractères français.

Ce qui suit a fonctionné pour un poste de test:

  • Création d'une copie de l'image sans les caractères FR
  • Nom de fichier mis à jour dans le corps de l'article de blog à l'aide de wp_update_post (fonction WP)
  • Mise à jour des métadonnées de pièce jointe à l'aide de wp_update_attachment_metadata (fonction WP)
  • 'Fichier joint' mis à jour à l'aide de update_attached_file (fonction WP)

On dirait que je peux juste sauter le:

  • Mise à jour des métadonnées de pièce jointe à l'aide de wp_update_attachment_metadata (fonction WP)
  • 'Fichier joint' mis à jour à l'aide de update_attached_file (fonction WP)

et changez simplement le contenu de l'article pour qu'il référence les nouvelles images à l'aide du code suivant:

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

Est-ce la bonne façon ou devrais-je continuer à mettre à jour les "méta-données de pièce jointe" et le "fichier joint" pour chaque image que je renomme?

2
Robert Sinclair

Tout dépend de votre cas d'utilisation - le changement de nom peut-il être effectué en bloc à l'aide de regex? puis appliquez la même expression rationnelle à la base de données, par exemple en utilisant http://wp-cli.org/commands/search-replace/

Si vous avez besoin de le faire manuellement, jetez un œil à https://wordpress.org/plugins/media-file-renamer/

Bonne chance!

2
Quasel

Je suppose que vous avez utilisé un script pour renommer plus de 1000 images. Vous pouvez donc probablement appliquer les mêmes règles à une requête de mise à jour MySQL sur les tables wp_postmeta et wp_posts à l'aide d'un REGEX ou d'une série d'instructions REPLACE().

Vous pouvez le faire avec un outil graphique SQL, dans phpMyAdmin ou en utilisant WP CLI

Enregistre les problèmes avec les fonctions Wordpress.

2
Alexander Holsgrove