[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…
…