概要説明
WordPress の管理画面のダッシュボードに、自分用の枠(ウィジェット)を足す functions.php のコード。今の日時を日本時間で出す例と、管理者だけにサポートの連絡先を出す例。PHP の date() だと時刻がずれる理由も、作業環境で確かめた結果つきで。
~ 目次 ~
コード:今の日時を出してみる
ダッシュボードに枠を足すには、wp_dashboard_setup のフックで wp_add_dashboard_widget を呼びます。
functions.php
/**
* ダッシュボードに「今の日時」の枠を足す
*/
add_action( 'wp_dashboard_setup', function () {
wp_add_dashboard_widget( 'my_dashboard_now', '今の日時', function () {
// wp_date() は、設定 → 一般 のタイムゾーンで日時を出す
echo '<p>' . esc_html( wp_date( 'Y年n月j日 H:i' ) ) . '</p>';
} );
} );
| 書き方 | 役目 |
|---|---|
| wp_add_dashboard_widget( id, 題名, 中身を出す関数 ) | ダッシュボードに枠を足す。id は枠ごとに別の名前にする |
| wp_date() | サイトの設定のタイムゾーン(日本なら東京)で日時を出す |
| esc_html() | 出す文字を、HTML として崩れない形にする |
WordPress の中では、PHP の date() は世界標準時(UTC)で動きます。日本時間とは 9 時間ずれるので、日時は wp_date() で出します。
ダッシュボードでの見え方
中身を出す関数の中に、好きな HTML を書けば、その内容が枠に出ます。
確かめた結果
このサイトの作業環境(WordPress 7.1・タイムゾーンは東京)で試しました。
| 試したこと | 結果 |
|---|---|
| 同じときに date() と wp_date() で時刻を出す | date() は 05:00、wp_date() は 14:00(9 時間ずれた) |
| 管理者でダッシュボードを作る | 「今の日時」と「ホームページのサポート」の 2 つが出た |
| 権限のない人でダッシュボードを作る | 「今の日時」だけが出た(サポートは出ない) |
使い道の例
- 制作会社やサポートの連絡先を出して、困ったときにすぐ連絡してもらえるようにする
- このサイトだけの操作の手順(記事の書き方・画像の大きさの決まりなど)を書いておく
- よく使う外部のページ(アクセス解析・サーバーの管理画面など)へのリンクをまとめる
例:ダッシュボードにサポートの連絡先を出す
functions.php
/**
* ダッシュボードに「ホームページのサポート」の枠を足す(管理者だけに出す)
*/
add_action( 'wp_dashboard_setup', function () {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
wp_add_dashboard_widget( 'my_dashboard_support', 'ホームページのサポート', function () {
echo '<p>お困りのときは、こちらにご連絡ください。</p>';
echo '<ul>';
echo '<li>担当:◯◯ ◯◯</li>';
echo '<li>電話:xxx-xxxx-xxxx</li>';
echo '<li>メール:info@example.com</li>';
echo '</ul>';
} );
} );
current_user_can( ‘manage_options’ ) で、管理者だけに出すようにしています。投稿者など、ほかの人にも見せたいときは、この 3 行を消します。
前はこの記事で、2 つの例が同じ id(dashboard_widget)を使っていました。両方を足すと、あとの枠で前の枠が上書きされてしまうので、今は別の id にしています。


