ダッシュボードウィジェットの作成・追加方法

ダッシュボードウィジェット 作成方法
ダッシュボードウィジェット 作成方法

あまり使わないかもしれませんが、ダッシュボードウィジェットはテーマやプラグインの基本的な案内など、簡単にまとめた情報を表示するのに非常に便利ですので、ダッシュボードウィジェットの作成方法を紹介しています。

恐らく思っている以上に簡単に作成することが出来ますので、初心者でも挑戦してみてください。

  • Table of Contents

基本的なウィジェットの追加

必要な関数は2つのみです。

1つはWordpress関数「wp_add_dashboard_widget」を呼び出す関数、もう1つはこの「wp_add_dashboard_widget」で呼び出すコールバック関数です。

実は「add_meta_box」でも作成できるそうですが、僕は関数名に「dashboard_widget」が入っているので、こちらを使っておくほうが整理しやすいから好きなんですが、「add_meta_box」で作成したい場合はWordpressの参照ページをご参照ください。

1.「wp_add_dashboard_widget」を呼び出す

こちらは非常にシンプルです。

add_action( 'wp_dashboard_setup', 'add_dashboard_widgets' );
function add_dashboard_widgets() {
	
 	wp_add_dashboard_widget(
		'dashboard_widget_example', // id
		'ダッシュボードウィジェット タイトル', // タイトル
		'dashboard_widget', // コールバック関数
		'dashboard_widget_handle', // 設定を付ける場合に使うハンドル関数(使用するとウィジェットの右上に小さく「設定」というテキストが表示されます)
		array() // 3つ目のコールバック関数にパラメーターとして渡される配列
	);
	
}

WordPress関数を1つ呼び出しているだけの関数ですので、フック名を間違えなければ大丈夫でしょう。「wp_dashboard_setup」ですので、間違えないように。

あと、この関数では3つ目までが必須のパラメーターで、4つ目のハンドル関数以降はオプショナルです。上の例では5つ目は使用していませんが、3つ目のコールバック関数に使用するパラメーターに使用される配列を設定できます。

2.コールバック関数の作成

こちらはダッシュボードウィジェットで出力する関数を書きます。

// 「フォーラムへの案内」
function dashboard_widget() { ?>
	<h4>テーマ「Optimizer」の案内</h4>
	<p>テーマ「Optimizer」用の解説ページは<a rel="nofollow" target="_blank" href="http://wp-googlist.com/how-to-set-up-optimizer/">こちら</a></p>
	<p>「質問」「不具合報告」「改善点」「機能追加要望」などは<br>
	配布サイト<a rel="nofollow" target="_blank" href="http://wp-googlist.com/">Wordpressテーマ「Googlist」</a>の<a rel="nofollow" target="_blank" href="http://wp-googlist.com/forums/">フォーラム</a>まで。</p>

<?php }

まぁ何の変哲もないHTMLを出力するだけの関数です。

これでダッシュボードウィジェットの作成方法は完了です。

3.設定用のコールバック関数の作成(オプショナル)

追加したダッシュボードウィジェットに設定を追加する方法は、通常のオプションと同じように「update_option」と「get_option」を使います。

// 設定用の関数
function dashboard_widget_handle() {

	$data = get_option( 'some_setting', '初期値' );

	if( $_POST[ 'some_setting_text' ] ) {
		update_option( 'some_setting', $_POST[ 'some_setting_text' ] );
		;
	}

	echo '<input name="some_setting_text" type="text" value="' . $data . '">';

}

めちゃくちゃ雑な書き方をしていますが、雰囲気だけ分かってもらえたら良いと思います。

あとは、こちらで追加した設定が適用されるように、「2」で作成する関数内で「get_option」を使用し、データを取得すればOKです。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください