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?
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!
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.