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.

re attacher media wordpress - Ré-attacher un média à un autre article ou page de WordPress

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

  • Christiane Lagacé
    Publié le

    Christiane Lagacé Christiane Lagacé

    Répondre Auteur

    Ceci est exactement ce que je cherchais.

    Mille fois merci !!!

    Christiane
    http://christianelagace.com


  • matthieu
    Publié le

    matthieu matthieu

    Répondre Auteur

    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 🙁


  • Romain MURSCHEL
    Publié le

    Romain MURSCHEL Romain MURSCHEL

    Répondre Auteur

    Bonjour,
    Il ne me semble pas que cela soit possible sans passer par un plugin… malheureusement


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.