web-dev-qa-db-ja.com

管理者メニューからBroken Link Checkerウィジェットを削除する方法

管理者レベルのユーザーだけがさまざまなメタボックスを見ることができるように、Admin ダッシュボードウィジェット を整理しようとしています。試してみました 壊れたリンクチェッカー ウィジェットは消えません(下記のコード例を参照)。

私はWordPress 3.1 MultiSite Networkを使用していて、MU pluginsフォルダでこのコードを使用しています。 ..Adminimizeプラグインも試してみましたが、ウィジェット上でもうまくいきませんでした。

/* Turn off Dashboard Widgets */

if( is_admin() )
    add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

function remove_dashboard_widgets() {
    global $wp_meta_boxes;
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['blc_dashboard_widget']);
}

どんなポインタでも前もってありがとう...心から、
チャックスコット

2
user4014

問題はおそらく、リンク切れチェッカーがメタボックスを追加する前にコードが実行されることだけです。アクションラインをこれに変更してみてください。

if(is_admin()){
  add_action('wp_dashboard_setup', 'remove_dashboard_widgets', 1000 );
}

編集

もう少し明確にすると、ここでの特定の問題は、add_action()関数がBroken Link Checkerのadd_action関数と比較して非常に早く実行されていることです。この問題を解決する2つの方法は、後でコードを実行するか(プラグインの主な機能をinitに接続してアクションとフィルタをそのinit関数に投入する)、またはアクションの優先順位を上げることです(上記の方法)。

3
John P Bloch