J'ai l'ID de l'image téléchargée et j'ai besoin de la renommer en utilisant php.
(Les raisons parce que je dois le faire sont difficiles à expliquer et je pense qu'elles ne sont même pas nécessaires pour les besoins de cette discussion)
J'ai 4 problèmes à résoudre:
Comme vous pouvez le constater, j'ai un peu de confusion à l'esprit car je ne connais pas parfaitement le moyen utilisé par WordPress pour gérer les pièces jointes d'un point de vue système/base de données.
Merci pour toutes les suggestions.
Allons voir. Si je prends des pièces jointes arbitraires dans mon installation de développement et que je vide ses objets post et ses champs personnalisés, j'obtiens ce qui suit:
object WP_Post (24) {
public ID -> integer 1687
public post_author -> string (1) "1"
public post_date -> string (19) "2013-09-18 14:37:07"
public post_date_gmt -> string (19) "2013-09-18 21:37:07"
public post_content -> string (0) ""
public post_title -> string (24) "dsc20050604_133440_34211"
public post_excerpt -> string (0) ""
public post_status -> string (7) "inherit"
public comment_status -> string (4) "open"
public ping_status -> string (6) "closed"
public post_password -> string (0) ""
public post_name -> string (24) "dsc20050604_133440_34211"
public to_ping -> string (0) ""
public pinged -> string (0) ""
public post_modified -> string (19) "2013-09-18 14:37:07"
public post_modified_gmt -> string (19) "2013-09-18 21:37:07"
public post_content_filtered -> string (0) ""
public post_parent -> integer 0
public guid -> string (76) "http://dev.rarst.net/wp-content/uploads/2013/09/dsc20050604_133440_34211.jpg"
public menu_order -> integer 0
public post_type -> string (10) "attachment"
public post_mime_type -> string (10) "image/jpeg"
public comment_count -> string (1) "0"
public filter -> string (3) "raw"
}
array(2) [
'_wp_attached_file' => array(1) [
string (36) "2013/09/dsc20050604_133440_34211.jpg"
]
'_wp_attachment_metadata' => array(1) [
string (687) "a:5:{s:5:"width";i:640;s:6:"height";i:480;s:4:"file";s:36:"2013/09/dsc20050604_133440_34211.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"file";s:36:"dsc20050604_133440_34211-150x150.jpg";s:5:"width";i:150;s:6:"height";i:150;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:36:"dsc20050604_133440_34211-300x225.jpg";s:5:"width";i:300;s:6:"height";i:225;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:{s:8:"aperture";d:2;s:6:"credit";s:0:"";s:6:"camera";s:9:"CYBERSHOT";s:7:"caption";s:0:"";s:17:"created_timestamp";i:1117892080;s:9:"copyright";s:0:"";s:12:"focal_length";s:3:"9.7";s:3:"iso";s:3:"100";s:13:"shutter_speed";s:6:"0.0125";s:5:"title";s:0:"";}}"
]
]
Les plats à emporter sont respectivement à vos questions:
guid
n'a pas d'importance , il contient une copie de l'URL calculée (mais ce n'est pas supposé pour être une URL fiable dans le contexte WP), elle doit généralement être ignorée._wp_attachment_metadata
. Vous avez besoin d'un outil de recherche/remplacement sensible à la sérialisation. Il en existe plusieurs (WP CLI, Recherche Remplacer une base de données, etc.).