自作のクラシックエディタをずっと使ってきたサイトで重宝していた、管理画面のダッシュボードに任意のウィジェットを追加できる「Dashboard Widget Sidebar」というプラグイン。

TT2のようなブロックテーマはそもそもウィジェット・ウィジェットエリアという概念がなく、かつ、ウィジェット自体も、クラシックスタイルに戻さなければサイトエディター対応(ブロック対応)なので、非常に使いにくい。

前述した「Dashboard Widget Sidebar」でもダッシュボードウィジェットを作れないわけではないけど、頻繁に編集・変更するものでもないし..ということで、テーマのfunctions.phpへ簡単なコードを追加して、ダッシュボードウィジェットをいくつか増やすことにした。

本ページでは、WordPressのダッシュボードに独自のウィジェット(パネル)を追加する基本コードを紹介するので、参考になれば幸いです。

独自のダッシュボードウィジェットを追加するコード

基本となるのは以下のコードです。有効化しているテーマ(子テーマ推奨)のfunctions.phpへ以下を追加すると、ダッシュボードに「ウィジェットのタイトル」という中身のないウィジェットが追加されますからまずは試してみるといいでしょう。

/***** ダッシュボードへウィジェットを表示 *****/
/* ウィジェットに表示する内容 */
if ( !function_exists( 'sample_admin_info_widget' ) ){
function sample_admin_info_widget() {
?>
ここに表示する内容をHTMLやphpで記述
<?php
}
}

/* ウィジェットの内容を含むウィジェットを追加する */
if ( !function_exists( 'sample_add_dashboard_info_widget' ) ){
function sample_add_dashboard_info_widget() {
	$info_dash_header = __('ウィジェットのタイトル','');
	wp_add_dashboard_widget( 'sample_admin_info_widget', $info_dash_header , 'sample_admin_info_widget' );
}
}

add_action( 'wp_dashboard_setup', 'sample_add_dashboard_info_widget' );

コードの解説

流れを簡単に説明すると、前半のユーザー定義関数(sample_admin_info_widget)の内容を、後半のユーザー定義関数(sample_add_dashboard_info_widget)を使ってダッシュボード内に出力しているというものです。

つまり、「sample_admin_info_widget」と「sample_add_dashboard_info_widget」の組み合わせを変更すれば、いくつでも独自のウィジェットを管理画面のダッシュボードへ表示させることができるのです。

コード中の「ウィジェットのタイトル」の部分はウィジェットを閉じた時にも表示される表題になりますから、適当なタイトルへ変更しましょう。

また、コード前半の「ここに表示する内容をHTMLやphpで記述」の部分へHTMLやPHPを記述すれば、その内容が表示されますから、上記コードをコピペしたら以下をその部分へ追加して確認してみると動作が分かると思います。

<p>ウィジェットの中身</p>

使用しているフックなど

本ページの機能についてはWordPress標準で用意されているフックを使っていますので、詳しく知りたい方は以下のリンク先ページ(公式)をご覧ください。


全くの余談ですが、このページは、WordPressをバージョン6.1へ更新してから初の投稿になります。

噂では6.1.1で修正される予定らしいですが、エディタ内に表示されるブロック追加ボタンが出たり出なかったり、ブロック選択画面の「×」をクリックしても画面が消えなかったり(右のサイドバー?を出すと消える)して少々使いにくくなってますね。

使い慣れてしまうと本当に便利なブロックエディターですが、多分今後もバージョンが変わるたびにいろいろな変更や不具合が出て都度修正となっていくのでしょうね。