web-dev-qa-db-ja.com

特定のプラグインの名前の下に散らかっているアクションリンクを削除/隠す方法

プラグインの中には、プラグインページの一次コラムのさまざまなリンクをその名前の下に配置しているものがあります。だから私たちは次のようなものになってしまいます。

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

標準のSettings | Activate | Deleteだけを保つために、私たちのカスタムの01_plugin.phpで次のコードを使います。

 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>'; 
    }

デバッグ時には、何らかの理由でPHP警告が表示されます。

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

誰かが私たちを正しい方向に向けることができますか?どのフックを使うべきですか?
私たちの目標を達成するための他の方法はありますか?

編集

これらのリンクがどこにあるのかをよりよく理解するために、スクリーンショットを見てください。

primary-bloated 

ご覧のとおりは貴重なスペースを無駄に使用しての割合でプライマリカラムを膨張させています。
注:1次列はを折り返しません。二次は行いません。

3
marikamitsos

あなたは正しいアプローチをしています。 admin_enqueue_scripts フックを使いたいでしょう。

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
    }
}

あなたはこれを使用することができます:

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>'; 
    }
});

さまざまな役割の管理ダッシュボードをスタイルするには、body-classにuser-roleを追加する必要があります( this を使用)。

1
T.Todua

非表示とは違って、CSSを介してレイアウトを変更しようとするかもしれません。

これは、プラグインの行アクションをターゲットにして、それぞれのアクションを別々の行に表示する例です。

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

プラグインがアクティブなときは、アクション行のみをターゲットにします。

active 

それ以外の場合は、このようになります。

deactive 

0
birgire