web-dev-qa-db-fra.com

Ajouter du contenu aux écrans d'administration /wp-admin/plugin-install.php

J'aimerais ajouter un contenu externe aux informations de plug-in affichées sur les écrans d'administration /wp-admin/plugin-install.php.

/wp-admin/plugin-install.php appelle le suivant:

$wp_list_table = _get_list_table('WP_Plugin_Install_List_Table');

Et si je pirate ce fichier de base à titre de test, je peux ajouter le contenu, je le souhaite, OK.

Cependant, en tant que nouveau WP développeur, j'ai vraiment du mal à comprendre comment ajouter ce contenu via un plugin.

class WP_Plugin_Install_List_Table étend WP_List_Table donc je ne pense pas pouvoir prolonger cela davantage.

Est-il possible d'ajouter du contenu via un plugin sur ces écrans?

4
dbm44

Sans étendre la classe, il est possible d’ajouter un lien d’action personnalisé:

add_filter( 'plugin_install_action_links', 'action_links_wpse_119218', 10, 2 );

function action_links_wpse_119218( $links, $plugin )
{
    if( isset( $_GET['tab'] ) )
    {
        switch( $_GET['tab'] )
        {
            case 'featured':                                         
                $links['my-action'] = "Tested up to <a href='#'>{$plugin['tested']}</a>";
            break;                                                   
            case 'popular':                                          
                $links['my-action'] = "Requires <a href='#'>{$plugin['requires']}</a>";
            break;                                                   
            case 'new':                                              
                $links['my-action'] = "Slug <a href='#'>{$plugin['slug']}</a>";
            break;                                                   
        }
    }
    return $links;
}

enter image description here

Ensuite, vous pouvez déplacer l'élément avec jQuery:

$('.move-me').each(function(){ /* your_magic(); */ });

Ce lien personnalisé, Mon affichage , est ajouté avec:

add_filter( 'views_plugin-install', 'views_wpse_119218' );

function views_wpse_119218( $views ){
    $views['my-view'] = '<a href="#">My view</a>';
    return $views;
}

Ceci serait utilisé pour créer votre propre écran/table personnalisé avec add_action( 'load-plugin-install.php', 'callback' ).

3
brasofilo