Ré-attacher un média à un autre article ou page de WordPress
WordPress intègre un système de gestion de média, qui est assez intéressant. Toutefois, une fois que vous avez uploadé un média sur une page ou un article, ou que vous avez attaché un média à un article ou une page, il n’est plus possible de modifier cet attachement… Tout ce que vous pouvez faire, c’est supprimé le média, puis l’uploadé à nouveau pour l’attacher à un autre article… C’est assez embêtant.
Pourtant, étant donné que WordPress est bien ficelé, il est tout à fait possible de modifier ce comportement, et d’avoir la possibilité de changer l’attachement d’un média une fois qu’il a été lié à un article ou une page.
Tout d’abord, ouvrez votre fichier functions.php
qui se trouve à la racine de votre thème et copiez-y ce code :
[pastacode lang= »php » manual= »add_filter(%20%22manage_upload_columns%22%2C%20’brm_upload_columns’%20)%3B%0Aadd_action(%20%22manage_media_custom_column%22%2C%20’brm_media_custom_columns’%2C%200%2C%202%20)%3B%0A%0Afunction%20brm_upload_columns(%20%24columns%20)%20%7B%0A%09unset(%20%24columns%5B’parent’%5D%20)%3B%0A%09%24columns%5B’better_parent’%5D%20%3D%20%22Parent%22%3B%0A%09return%20%24columns%3B%0A%7D%0Afunction%20brm_media_custom_columns(%20%24column_name%2C%20%24id%20)%20%7B%0A%09%24post%20%3D%20get_post(%24id)%3B%0A%0A%09if(%20%24column_name%20!%3D%20’better_parent’%20)%0A%09%09return%3B%0A%0A%09if%20(%20%24post-%3Epost_parent%20%3E%200%20)%20%7B%0A%09%09if%20(%20get_post(%20%24post-%3Epost_parent%20)%20)%20%7B%0A%09%09%09%24title%20%3D_draft_or_post_title(%20%24post-%3Epost_parent%20)%3B%0A%09%09%7D%0A%09%09%3F%3E%0A%09%09%3Cstrong%3E%3Ca%20href%3D%22%3C%3Fphp%20echo%20get_edit_post_link(%20%24post-%3Epost_parent%20)%3B%20%3F%3E%22%3E%3C%3Fphp%20echo%20%24title%20%3F%3E%3C%2Fa%3E%3C%2Fstrong%3E%2C%20%3C%3Fphp%20echo%20get_the_time(__(‘Y%2Fm%2Fd’))%3B%20%3F%3E%0A%09%09%3Cbr%20%2F%3E%0A%09%09%3Ca%20class%3D%22hide-if-no-js%22%20onclick%3D%22findPosts.open(‘media%5B%5D’%2C’%3C%3Fphp%20echo%20%24post-%3EID%20%3F%3E’)%3Breturn%20false%3B%22%20href%3D%22%23the-list%22%3E%3C%3Fphp%20_e(‘Re-Attach’)%3B%20%3F%3E%3C%2Fa%3E%3C%2Ftd%3E%0A%09%09%3C%3Fphp%0A%09%7D%20else%20%7B%0A%09%09%3F%3E%0A%09%09%3C%3Fphp%20_e(‘(Unattached)’)%3B%20%3F%3E%3Cbr%20%2F%3E%0A%09%09%3Ca%20class%3D%22hide-if-no-js%22%20onclick%3D%22findPosts.open(‘media%5B%5D’%2C’%3C%3Fphp%20echo%20%24post-%3EID%20%3F%3E’)%3Breturn%20false%3B%22%20href%3D%22%23the-list%22%3E%3C%3Fphp%20_e(‘Attach’)%3B%20%3F%3E%3C%2Fa%3E%0A%09%09%3C%3Fphp%0A%09%7D%0A%7D » message= »Ré-attacher un média à un autre article ou page de WordPress » highlight= » » provider= »manual »/]
Le premier add_filter(), associé à la première fonction, permet de modifier le nom de la colonne, relative à l’attachement des médias, qui se trouve dans la page « Médias » de WordPress (celle qui liste tous vos médias).
La seconde fonction va indiquer ce que l’on doit afficher dans cette colonne, pour chacun de vos médias. Si le média à un parent, c’est-à-dire qu’il a déjà été attaché à une page ou un article, alors on va afficher le nom de cet article ainsi que son lien d’édition. De plus, on va afficher en dessous un lien permettant de ré-attacher ce média. Lors d’un clic sur ce lien, une pop-up s’ouvre contenant la liste de vos pages et articles. Ainsi vous pouvez choisir l’un d’entre eux et ré-attacher votre média.
Commentaires3
Ceci est exactement ce que je cherchais.
Mille fois merci !!!
Christiane
http://christianelagace.com
Bonjour
Très interessant car j’avais des soucis avec le plugin shuffle qui faissait le meme genre de truc
mais comment détacher un fichier ? car dans le cas présent on peut le réattacher à une autre page mais pas le détacher 🙁
Bonjour,
Il ne me semble pas que cela soit possible sans passer par un plugin… malheureusement