管理画面に表示される更新通知を非表示にする
WordPressでは、新しいバージョンが公開されると「Wordpress X.Xが利用可能です」といった更新メッセージが表示されます。
このメッセージを表示しないようにするには、functions.phpに下記のように記載します。
1 2 3 4 5 6 7 |
/** * バージョンアップ通知を非表示にします。 */ function update_nag_hide() { remove_action( 'admin_notices', 'update_nag', 3 ); } add_action( 'admin_init', 'update_nag_hide' ); |
結果
管理者のみ表示させるようにする
上記ではどのユーザーでログインしてもメッセージが非表示になります。管理者は更新通知を受け取って適切なタイミングで本体をアップデートする必要があるはずですので、管理者にはメッセージを表示させるようにしておいたほうがよいと思います。
管理者のみメッセージを表示させるようにするには、上記の代わりにfunctions.phpに下記のように記載します。
1 2 3 4 5 6 7 8 9 |
/** * バージョンアップ通知を管理者のみ表示させるようにします。 */ function update_nag_admin_only() { if ( ! current_user_can( 'administrator' ) ) { remove_action( 'admin_notices', 'update_nag', 3 ); } } add_action( 'admin_init', 'update_nag_admin_only' ); |
その他
以前のレシピでは「たった1行改め3行でWordPressのバージョンアップ通知を非表示にする方法 | Simple Colors」さんをもとに下記の方法を紹介していました。
1 2 3 4 5 6 7 |
/** * 更新メッセージが出ないようにします。 * http://www.warna.info/archives/781/ */ add_filter( 'pre_site_transient_update_core', '__return_zero' ); remove_action( 'wp_version_check', 'wp_version_check' ); remove_action( 'admin_init', '_maybe_update_core' ); |
下記の理由で紹介するコードを変更しました。
- バージョンチェックそのものをとめてしまうとセキュリティ対策上不便だった
- WordPress (4.4)本体のソースコードを確認したところWordPressの更新チェックの頻度は1日2回(→参考 / 連続実行されても前回の更新チェック後60秒以上経っていないと実行されない →参考)という形になっていたため、参考サイトのCODE2の必要性はそこまでないと判断した
また、「納品する顧客(クライアント)に意図せず本体アップデートをさせないように非表示にしたい」という目的でこのレシピを探しに来た方は、「顧客には管理者権限のアカウントではなく編集者権限のアカウントを使用してもらう」運用の検討をおすすめします。
主な権限の一覧の通り編集者であれば本体の更新、テーマの更新、プラグインの更新などができないようになっていますので、顧客には普段は編集者で、本当に必要な場合のみ管理者でログインしてもらうようにしたほうが無理が無いかもしれません。
(編集者でログインした場合の管理画面。枠の部分は本レシピ内のどのコードでも非表示にできます)
更新履歴
- 2016/02/11 更新チェックの頻度は1日2回のようでしたので「その他」の文章を一部加筆しました。
- 4.4.2時点では下記のようになっていました。
各管理画面表示
→ wp-admin/includes/admin.php の読み込み
→ wp-admin/includes/update.php の読み込み
→wp_schedule_update_checks()
内でwp_version_check
アクションのイベントが1日2回実行されるように登録(twicedaily
)
→wp_version_check()
関数実行 (1日2回)
→ 前回チェックから60秒以上経過していた場合api.wordpress.orgにアクセス(JSONでレスポンス取得)
- 4.4.2時点では下記のようになっていました。
- 2016/02/10 タイトルの一部変更およびコードの変更、スクリーンショットの追加等を行い全体的に再構成しました。
- 2014/10/05 初版