web-dev-qa-db-fra.com

Manière correcte d'ajouter un bouton au menu supérieur de la médiathèque?

Je souhaite ajouter un simple bouton au menu supérieur de la bibliothèque multimédia (par exemple, à droite des menus déroulants Actions/Filtres en bloc. J'ai parcouru le codex WordPress pour trouver le moyen approprié de le faire et je n'ai rien trouvé d'utile.

Donc, avant de commencer à attaquer ce problème avec Javascript, je voulais demander à la communauté s'il y avait un moyen approprié de faire cela avec l'API WordPress - le long des lignes manage_media_columns et manage_media_custom_column.

Merci tout le monde!

7
karim79

Donc, c’est le seul moyen que j’ai trouvé jusqu’à présent et c’est moche , mais WordPress ne propose aucun moyen de le modifier au moyen de filtres que je peux trouver dans coeur. Je présente la méthode "do-it-through-Javascript" de hacky:

add_action( 'load-upload.php', function(){
    $js = <<<JAVASCRIPT
jQuery(document).ready(function($){
    setTimeout(function() {
        $('.wp-filter .button:last' ).after($('<button class="button">Hi</button>'));
    }, 1000);
});
JAVASCRIPT;

    add_filter( 'admin_footer', function() use ($js) {
        echo "<script>{$js}</script>";
    });
});

Évidemment, vous devriez mettre le Javascript que vous voulez au lieu de le faire comme moi, mais c'est une preuve de concept. Cela ajoutera un bouton aux deux barres d’outils de la médiathèque (vue liste et vue galerie).

La raison de la setTimeout est que les barres de filtre se chargent réellement après le chargement de la page . Il ne suffit donc pas d'attendre que le document soit prêt. Il y a probablement un meilleur endroit pour accrocher ceci, mais cela devrait être un bon début.

1
phatskat