web-dev-qa-db-fra.com

Comment supprimer/cacher les liens d'action encombrant sous les noms de plugins spécifiques

Certains plugins placent divers liens sous leur nom dans la colonne principale de la page du plugin. Nous nous retrouvons donc avec quelque chose comme:

Home Page | Support Forums | Documentation | Upgrade to Pro Edition | Donate | Settings | Activate | Delete

Afin de ne conserver que les liens standard Settings | Activate | Delete, nous utilisons dans notre code personnalisé 01_plugin.php le code suivant:

 global $pagenow; 
    if( $pagenow == 'plugins.php' ) {
    echo '<style type="text/css">
        .visible .proupgrade, 
        .visible .docs, 
        .visible .forum, 
        .visible .jetpack-home, 
        .visible .support 
            {display: none ; 
            } 
          </style>'; 
    }

Lors du débogage, pour une raison quelconque, cela donne un PHP Avertissement:

PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /wp-content/plugins/01-plugin/01_plugin.php:282) in /wp-content/plugins/wp-miniaudioplayer/miniAudioPlayer.php on line 231

Est-ce que quelqu'un peut nous indiquer la bonne direction? Quel crochet devrions-nous utiliser?
Y a-t-il un autre moyen d'atteindre notre objectif?

MODIFIER

Pour mieux comprendre où se trouvent ces liens, veuillez regarder la capture d'écran:

 primary-bloated 

Comme vous pouvez le voir ils gonflent la colonne principale hors de proportion , en utilisant/gaspillant de l’espace précieux, qui pourrait autrement être attribué à la colonne secondaire.
Remarque: La colonne principale n’emballe pas . Le secondaire fait.

3
marikamitsos

Vous avez la bonne approche. Vous voudrez utiliser le admin_enqueue_scripts hook:

add_action( 'admin_enqueue_scripts', 'wpse_239302_hide_action_links' );
function wpse_239302_hide_action_links() {
    global $pagenow; 
    if ( $pagenow == 'plugins.php' ) {
        ?>
        <style type="text/css">
            .visible .proupgrade,
            .visible .docs,
            .visible .forum,
            .visible .jetpack-home,
            .visible .support { display: none; } 
        </style>
        <?php
    }
}
3

vous pouvez utiliser ceci:

add_action('admin_footer', function () {
    if( $GLOBALS['pagenow'] == 'plugins.php' ) {
    echo '<style type="text/css">.visible .proupgrade,  .visible .docs, .visible .forum, .visible .jetpack-home, .visible .support {display: none ; }   </style>'; 
    }
});

pour attribuer un style au tableau de bord admin pour différents rôles, vous devez ensuite ajouter le rôle de l'utilisateur dans la classe body (Utilisez this ).

1
T.Todua

Nous pourrions aussi essayer de changer la mise en page via CSS, autrement que de la cacher.

Voici un exemple où nous ciblons les actions de ligne de ce plugin et affichons chaque action dans une ligne séparée:

tr.active[data-slug="all-in-one-seo-pack"] .row-actions.visible span{
    display: block;
}

Notez que nous ne ciblons que les lignes d'action lorsque le plug-in est actif:

 active 

sinon c'est comme ça:

 deactive 

0
birgire