[WordPress]ダッシュボードに情報を表示するプラグインの作り方
WordPress のダッシュボードに情報を表示するプラグインを作成する方法です。
まず簡単な雛形から紹介
function my_plugin_dashboard_test() {
echo "ダッシュボードに表示する内容";
}
function my_plugin_dashboard_setup() {
wp_add_dashboard_widget( 'my_plugin_dashboard_test', __( 'Widget Title' ), 'my_plugin_dashboard_test');
}
add_action('wp_dashboard_setup', 'my_plugin_dashboard_setup');
ダッシュボードから設定を変更する方法
ダッシュボードウィジットによってはウィジットの右上に「設定」というリンクがあり、クリックすると値などを変更できるものがあります。
wp_add_dashboard_widget 関数は wp-admin/includes/dashboard.php で以下のように定義されています。
function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null )
最初の例では第4引数の $controll_callback は定義していません。この $control_callback を設定するとダッシュボードウィジットに「設定」というリンクがつきます。この設定をクリックすると、$control_callback で指定した関数で出力した内容が表示されます。この表示は以下のようになります。
<form action="" method="post" class="dashboard-widget-control-form"> ここに $control_callback で出力した内容が表示される <p class='submit'> <input type='hidden' name='widget_id' value='suzuki_news_dashboard_test' /> <input type='submit' value='実行' /> </p> </form>
つまり、$controll_callback で指定した関数でフォームの内容を出力すれば、それを POST で受け取れます。例えば $controll_callback に my_plugin_option と設定すれば、以下のようにして options テーブルに値を入れておくことも可能です。
function my_plugin_option() {
if ( 'post' == strtolower($_SERVER['REQUEST_METHOD']) &&
isset( $_POST['widget_id'] ) &&
'my_plugin_dashboard_test' == $_POST['widget_id'] ) {
foreach ( array( 'hoge', 'foo' ) as $key )
$options[$key] = $_POST[$key];
update_option( 'my_plugin_dashboard', $options );
}
}
// form に表示する内容
}
ちなみに $controll_callback 関数で出力する内容は「設定」をクリックしたときに実行されるのではなく、ダッシュボードが表示されたときに実行され、CSS により非表示になっているだけです。
参考 URL
Rick’s HideOut ? How add options to your WordPress 2.7 dashboard widgets – Archivo
関連する投稿
One comment
コメントをどうぞ
Additional comments powered by BackType
2enhanced…
…