WordPress 7.2 Beta 2で管理メニューの一部のDashiconsがSVGに|置き換わる99種類とプラグインの確かめ方

WordPress 7.2 Beta 2で、プラグインのメニューアイコンもSVGに置き換わるようになった

WordPressは2026年10月27日、12月8日に公開予定のWordPress 7.2の2回目のベータ版「WordPress 7.2 Beta 2」を公開しました。発表では、管理画面のアイコンを新しいSVGアイコンへ切り替える作業が進んだことも挙げられています。

管理画面の左のメニューや上の管理バーのアイコンは、これまで「Dashicons」というアイコン用のフォントで表示されてきました。7.2では、これを本体のアイコンライブラリにある線画のSVG(拡大しても粗くならない画像の形式)に置き換えます。Beta 1では本体のメニューが使う12種類のDashiconsだけでしたが、Beta 2では10月27日の変更で、プラグインやカスタム投稿タイプのメニューにも広がりました。

この記事では、プラグインやテーマの作者に向けて、どのメニューアイコンがSVGに置き換わり、どれがフォントのまま残るのかを、7.2 Beta 2の配布ファイルのコードから整理します。そのうえで、自分のプラグインが使っているDashiconsを調べるスクリプトと、正式版までに確かめておきたいCSSの書き方を紹介します。

変更の要点

対応表に載っている99種類のDashiconsは、どのプラグインのメニューでもSVGで表示される

対象

メニューに指定したDashicons

add_menu_page()の$icon_urlや、カスタム投稿タイプのmenu_iconに書いたdashicons-で始まる名前。

置き換わる数

99種類

Dashiconsのアイコン用のスタイル約350個のうち、対応表に置き換え先が書かれたもの。

残るもの

対応表にないDashicons

既定のdashicons-admin-genericを含め、これまでどおりフォントで表示される。

新しく使える指定

アイコン名で直接指定

core-admin/cartのような名前を渡すと、そのSVGで表示される。

出典: WordPress 7.2 Beta 2の発表(2026年10月27日)と、配布ファイルwordpress-7.2-beta2.zipのコード。2026年10月28日に筆者が確認

アイコンの扱いは、Beta 1とBeta 2で対象が変わった

7.2でのアイコンの置き換えは、2段階で入りました。10月19日の1つ目の変更(Beta 1に収録)は、管理バーと左のメニューのうち本体の項目を、7.1で入った関数wp_get_icon()が出力するSVGへ切り替えました。このときの対応表は、投稿・メディア・固定ページなど本体のメニューが使う12種類のDashiconsだけを書いた固定の一覧でした。

10月27日には、Beta 2に向けた2つの変更が入りました。まず、エディター(Gutenberg)側の更新を本体に取り込む変更で、本体のアイコンライブラリの一覧ファイル(wp-includes/assets/icon-library-manifest.php)に、アイコンごとに「置き換えるDashicons」の項目が加わりました。続く変更で固定の一覧がなくなり、メニューを表示するたびにこの対応表を引くようになっています。

7.2 Beta 1(10月20日)

本体の12種類だけSVG

対応表: menu-header.phpに書かれた12種類の固定の一覧

プラグインのメニュー: 12種類と同じDashiconsを使ったものを除き、フォントのまま

7.2 Beta 2(10月27日)

対応表の99種類がSVG

対応表: アイコンライブラリの一覧ファイルのdashiconsの項目

プラグインのメニュー: 対応表にあるDashiconsならSVG、なければフォントのまま

筆者は10月28日に、7.2 Beta 1とBeta 2の配布ファイルを取得し、メニューを出力するwp-admin/menu-header.phpを比べました。Beta 2では、12種類を書いた一覧が消え、WP_Icons_Registry::get_admin_icon_name_for_dashicon()という新しいメソッドで置き換え先を引く1行に変わっています。Beta 2の一覧ファイルでは、79個のアイコンに計99種類のDashiconsが対応づけられていました。

メニューのアイコンは、指定した値の種類で表示のしかたが決まる

Beta 2の_wp_menu_output()は、メニュー項目に指定されたアイコンの値を上から順に調べ、最初に当てはまった方法で表示します。プラグインのコードを変えていなくても、指定したDashiconsが対応表にあるかどうかで、表示がSVGかフォントかに分かれます。

メニューアイコンの値ごとの表示(7.2 Beta 2)

'none' または 'div'

アイコンを出さない。CSSで背景画像などを付ける従来の方法のまま

data:image/svg+xml;base64,…

これまでどおり、SVGを背景画像として表示する

対応表にあるDashicons(例: dashicons-cart)、または core-admin/cart のようなアイコン名

置き換え先のSVGをメニューの中に直接書き出す。クラスはdashicons-before svg-iconになる

対応表にないDashicons(例: dashicons-megaphone)

これまでどおりフォントで表示する。クラスはdashicons-before dashicons-megaphone

それ以外(画像のURL)

これまでどおり<img>で表示する

7.2 Beta 2の wp-admin/menu-header.php をもとに作成。登録されていないアイコン名を指定すると、アイコンは空になり、開発時の警告(_doing_it_wrong)が出る

SVGに置き換わった項目では、HTMLのクラスからdashicons-cartのような元のDashiconsの名前が外れます。CSSで.dashicons-cartを手がかりにメニューのアイコンの色や大きさを変えていた場合、その指定は当たらなくなります。メニュー項目のliに付くID(toplevel_page_スラッグやmenu-posts-投稿タイプ)を手がかりにした指定は、これまでどおり使えます。

一方で、div.wp-menu-image::beforeにcontentで文字を入れて独自のアイコンを表示していたプラグインのために、互換の仕組みも入っています。7.2 Beta 2の管理画面のCSSは、::beforeに中身があればその幅いっぱいに広げ、SVGを表示領域の外へ押し出すように書かれています。メニュー項目のIDを手がかりに::beforeへ文字を入れているプラグインは、見た目が保たれる想定です。.dashicons-cart::beforeのように元のクラスを手がかりにした指定には、この互換の仕組みは効きません。

よく使われるDashiconsのうち、置き換わるもの・残るもの

プラグインのメニューでよく見かけるDashicons 20種類を、Beta 2の対応表で調べた結果が次の表です。メニューの既定のアイコンdashicons-admin-generic(歯車)は対応表になく、フォントのまま表示されます。

指定したDashicons7.2 Beta 2での表示
dashicons-admin-genericフォントのまま
dashicons-cartSVG(core-admin/cart)
dashicons-chart-barSVG(core-admin/chart-bar)
dashicons-emailSVG(core-admin/envelope)
dashicons-calendar-altSVG(core-admin/calendar)
dashicons-format-gallerySVG(core-admin/gallery)
dashicons-storeSVG(core-admin/store)
dashicons-shieldSVG(core-admin/shield)
dashicons-translationSVG(core-admin/language)
dashicons-groupsSVG(core-admin/people)
dashicons-locationSVG(core-admin/map-marker)
dashicons-admin-siteフォントのまま
dashicons-formsフォントのまま
dashicons-databaseフォントのまま
dashicons-performanceフォントのまま
dashicons-megaphoneフォントのまま
dashicons-analyticsフォントのまま
dashicons-bookフォントのまま
dashicons-welcome-learn-moreフォントのまま
dashicons-money-altフォントのまま

7.2 Beta 2の icon-library-manifest.php の dashicons の項目から作成。2026年10月28日に確認。正式版までに対応表が増える可能性がある

自分のプラグインのDashiconsは、スクリプトで対応表と照らし合わせられる

自分のプラグインやテーマのどのアイコンが置き換わるかは、7.2 Beta 2以降の一覧ファイルと、プラグインのPHPファイルに出てくるdashicons-の名前を照らし合わせれば分かります。筆者が作った次のシェルスクリプトは、ファイルを読むだけで、書き換えや通信はしません。PHPファイルに出てくるDashiconsの名前をすべて拾うため、メニュー以外で使っている名前も一覧に出ます。SVGに置き換わるのはメニューのアイコンだけで、設定画面などで<span class="dashicons …">として使っているアイコンはフォントのままです。PHP以外のファイルに書いた名前や、文字列をつないで組み立てた名前は拾えません。

#!/bin/sh
# プラグインやテーマの PHP ファイルに出てくる Dashicons の名前が、WordPress 7.2 の管理メニューで SVG に置き換わるかを調べる(ファイルを読むだけ)
# 使い方: sh check-menu-dashicons.sh <WordPress 7.2 のフォルダ> <プラグインやテーマのフォルダ>
wp="$1"; target="$2"
manifest="$wp/wp-includes/assets/icon-library-manifest.php"
if [ ! -f "$manifest" ]; then
  echo "icon-library-manifest.php が見つからない(WordPress 7.2 Beta 2 以降のフォルダを指定する)"; exit 1
fi
mapped=$(grep "'dashicons' *=>" "$manifest" | grep -oE "'dashicons-[a-z0-9-]+'" | tr -d "'" | sort -u)
if [ -z "$mapped" ]; then
  echo "対応表('dashicons' の項目)が見つからない。WordPress 7.2 Beta 2 以降のフォルダを指定する"; exit 1
fi
echo "置き換え先のある Dashicons: $(printf '%s\n' "$mapped" | grep -c .) 種類"
grep -rhoE "dashicons-[a-z0-9-]+" --include='*.php' "$target" | grep -vx "dashicons-before" | sort -u | while read -r d; do
  if printf '%s\n' "$mapped" | grep -qx "$d"; then
    echo "メニューに使うと SVG: $d"
  else
    echo "フォントのまま     : $d"
  fi
done

1つ目の引数にWordPress 7.2 Beta 2のフォルダ(配布zipを展開したwordpressフォルダなど)、2つ目に調べたいプラグインのフォルダを渡します。メニューを3つとカスタム投稿タイプを1つ登録するサンプルのプラグインで実行した結果が次のとおりです。macOS 27.0.1の標準のシェルで、2026年10月28日に確認しました。

$ sh check-menu-dashicons.sh wordpress-7.2-beta2 my-shop-plugin
置き換え先のある Dashicons: 99 種類
フォントのまま     : dashicons-admin-generic
メニューに使うと SVG: dashicons-cart
メニューに使うと SVG: dashicons-chart-bar
フォントのまま     : dashicons-megaphone

このスクリプトはBeta 2以降の対応表を前提にしていて、Beta 1のフォルダを渡すと、対応表が見つからないと表示して止まります。Beta 1では、本体のメニューが使う12種類のDashiconsだけが、どのメニューでもSVGに置き換わります。

新しく作るメニューは、アイコン名で直接指定できる

7.2からは、add_menu_page()の$icon_urlやカスタム投稿タイプのmenu_iconに、core-admin/cartのような「コレクション名/アイコン名」の形の名前を渡せます。7.2 Beta 2のadd_menu_page()の説明にも、この指定方法が加わっています。名前はwp_is_valid_icon_name()で形を確かめられ、登録されたアイコンならSVGで表示されます。

add_menu_page( 'Shop', 'Shop', 'manage_options', 'my-shop', 'my_shop_render', 'core-admin/cart', 30 );

独自のアイコンを使いたい場合は、先にwp_register_icon_collection()で自分のプラグイン名のコレクションを登録し、続けて7.1で入ったwp_register_icon()でアイコン(例: my-plugin/coupon)を登録してから指定します。コレクションを登録しないままアイコンを登録すると、登録は失敗し、メニューのアイコンは空になります。coreとcore-adminは本体が使う名前なので、プラグインは自分のコレクション名で登録します。メニューだけで使うなら、7.2で加わったpublicをfalseにすると、エディターのアイコン選択には出ません。publicは7.2で加わった項目で、7.1に渡すとコレクションの登録が失敗するため、次の例では7.2で加わった関数wp_is_valid_icon_name()があるかを先に確かめています。

// WordPress 7.2 以降だけで動かす(7.2 で加わった関数があるかで判定)
add_action( 'init', function () {
	if ( ! function_exists( 'wp_is_valid_icon_name' ) ) {
		return;
	}
	wp_register_icon_collection( 'my-plugin', array( 'label' => 'My Plugin', 'public' => false ) );
	wp_register_icon( 'my-plugin/coupon', array(
		'label'   => 'Coupon',
		'content' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 6h16v12H4z"/></svg>',
	) );
} );

7.1以前でも動かすプラグインでは、アイコン名を渡すと古い版で画像のURLとして扱われます。同じようにfunction_exists( 'wp_is_valid_icon_name' )で判定し、7.2ならアイコン名、それより前ならDashiconsの名前を渡すように切り替えます。

正式版までに確かめる3つのこと

1. 使っているDashicons

スクリプトで、メニューのアイコンがSVGに置き換わるか、フォントのまま残るかを確かめる。

2. メニューのCSS

.dashicons-cartのようなDashiconsのクラスを手がかりにした指定を、メニュー項目のIDを手がかりにした指定へ移す。

3. 実際の表示

テスト用のサイトに7.2 Beta 2を入れ、プラグインのメニューとカラースキームを切り替えた表示を見る。

7.2の正式版は12月8日の予定で、それまでにRC(公開候補版)を経て対応表やCSSが変わることもあります。メニューのアイコンをCSSで細かく調整しているプラグインほど、Beta 2の段階でテスト用のサイトに入れて表示を確かめておけば、正式版の公開までに直す時間を取れます。