Personal WP Customization Notes (PWCN)

WordPressで実際に行ったカスタマイズの記録、発生した問題への対処時のメモ、ブロックテーマのカスタマイズなど

ダッシュボードに任意のウィジェット(パネル)を追加する方法

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

例えば他のウェブサービスのページや、管理している他のサイトの管理画面へのリンクなどを登録しておいて、ブラウザのブックマークではなく、サイトのダッシュボードから簡単に呼び出せるので、本当に便利に使っていました。

でも、このプラグインは長い間更新されていない(といっても現在も元気に動作します)ので、完全にクラシックテーマでのみ使用できます。

これはTT2のようなブロックテーマが、そもそもウィジェットエリア及びウィジェットという概念を持っていないので仕方のないことですが、今まで重宝してきただけに、この機能がないのは個人的に管理しにくいと感じていました。

そこで、プラグインでダメなら自前で用意すればいい!ということで、本ページでは、WordPressのダッシュボードに独自のウィジェット(パネル)を追加する基本コードを紹介します。

結構簡単なコードで、任意のダッシュボードウィジェットが作れ、前述したような便利リンクなどが簡単に作れるようになるので、参考にしてみてください。

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

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

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

echo $content;
}
}

/* ウィジェットの内容を含むウィジェットを追加する */
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で修正される予定らしいですが、エディタ内に表示されるブロック追加ボタンが出たり出なかったり、ブロック選択画面の「×」をクリックしても画面が消えなかったり(右のサイドバー?を出すと消える)して少々使いにくくなってますね。

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

ウィジェットエリアを追加したいときは

ここまでは管理画面のダッシュボードへエリアを追加し、単独のウィジェットを表示させる方法を紹介してきましたが、後のメンテナンスをすべてテーマのfuncitons.phpで行う必要があってちょっと不便ですね。

そこで、クラシックテーマでは標準のウィジェット設定画面を使って、自由に変更できる「ウィジェットエリア」を追加する方法を以下のページで紹介しています。

Twenty Twenty-Twoのようなブロック形式のテーマでも「外観」メニューに、今まで表示されていなかった「ウィジェット」というメニューが追加され、設定できるようになっていますので、クラシック・ブロック両方のテーマで利用可能です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※リンクやURLの挿入されているコメントは無視します