remove_meta_box()

特定のメタボックスを削除

管理画面の不要なメタボックスを表示にするために remove_meta_box() を使用します。

構文とパラメーター

【構文】

PHP
remove_meta_box( $id, $screen, $context )

【返り値】null(何も返さない)

パラメーター

$idstring必須
削除するメタボックスのID
$screenstring | array任意
メタボックスが表示される画面。単一の画面ID、 WP_Screenオブジェクト、または画面IDの配列
$contextstring任意
メタボックスが表示される位置

ダッシュボードにあるウィジェットの削除

ダッシュボードには、デフォルトで表示される要素があります。

「表示オプション」から非表示にすることができますが、ここの項目からも非表示にしたい場合、 remove_meta_box() を使用します。

表示オプションを開いた状態

以下のコードは基本の表示要素の削除コードです。

functions.php
function remove_dashboard() {
  remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概要
  remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // アクティビティ
  remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // クイックドラフト
  remove_meta_box('dashboard_primary', 'dashboard', 'side'); // WordPress イベントとニュース
  remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // サイトヘルスステータス
}
add_action('wp_dashboard_setup', 'remove_dashboard');

メタボックスのIDは、デベロッパーツールにて確認できます。

プラグインによっては、ダッシュボードにメタボックスが追加されるものがあります。これらを削除したい場合、IDを確認し、 remove_meta_box() を使って削除することができます。

例えばYoast SEOを有効化すると、「Yoast SEO 投稿の概要」というメタボックスが表示されます。IDを確認すると「wpseo-dashboard-overview」ということが分かります。

このIDを使って設定したコードです。これで「Yoast SEO 投稿の概要」メタボックスを削除することができました。

functions.php
function remove_dashboard() {
  remove_meta_box('wpseo-dashboard-overview', 'dashboard', 'normal'); 
}
add_action('wp_dashboard_setup', 'remove_dashboard');

remove_meta_box() が動作しない

クラシックエディターの時に使われていた項目非表示コード remove_meta_box() は Gutenberg では動作しませんでした。もしコードがアップデートできていない方は同じようなコードを書いているかもしれません。

functions.php
function remove_post_meta_boxes() {
  // 投稿
  remove_meta_box('categorydiv','post','side'); // カテゴリー
  remove_meta_box('postcustom', 'post', 'normal'); // カスタムフィールド
  remove_meta_box('postexcerpt', 'post', 'normal'); // 抜粋
  remove_meta_box('commentsdiv', 'post', 'normal'); // コメント
  remove_meta_box('tagsdiv-post_tag', 'post', 'side'); // タグ
  remove_meta_box('trackbacksdiv', 'post', 'normal'); // トラックバック
  remove_meta_box('commentstatusdiv', 'post', 'normal'); // ディスカッション
  remove_meta_box('slugdiv','post','normal'); // スラッグ
  remove_meta_box('authordiv','post','normal'); // 作成者
  remove_meta_box('revisionsdiv','post','normal'); // リビジョン
  // 固定ページ
  remove_meta_box('postcustom', 'page', 'normal'); // カスタムフィールド
  remove_meta_box('postexcerpt', 'page', 'normal'); // 抜粋
  remove_meta_box('commentsdiv', 'page', 'normal'); // コメント
  remove_meta_box('tagsdiv-post_tag', 'page', 'side'); // タグ
  remove_meta_box('trackbacksdiv', 'page', 'normal'); // トラックバック
  remove_meta_box('commentstatusdiv', 'page', 'normal'); // ディスカッション
  remove_meta_box('slugdiv', 'page', 'normal'); // スラッグ
  remove_meta_box('authordiv', 'page', 'normal'); // 作成者
  remove_meta_box('revisionsdiv', 'page', 'normal'); // リビジョン
  remove_meta_box('pageparentdiv', 'page', 'side'); // ページ属性
}
add_action('admin_menu', 'remove_post_meta_boxes');

設定しているのに非表示にならない!という時は、remove_post_type_support() のコードに変更してみてください。

コード Reference 一覧へ