web-dev-qa-db-ja.com

ダッシュボードから "アップグレードする時間"メッセージを削除

これまで私は次のコードを使ってダッシュボードの更新メッセージを削除してきました( "WordPress 3.5は利用可能です。今すぐ更新してください。"):

remove_action('wp_version_check', 'wp_version_check');
remove_action('admin_init', '_maybe_update_core');
add_filter('pre_transient_update_core', create_function( '$a', "return null;"));

しかし、現在のWordPressのバージョンではこれ以上機能しないようです。それ以降のWordPressのバージョンと互換性があるこのメッセージを削除する新しい方法はありますか?

6
drake035

WordPressのアップデートメッセージを隠す方法

CSS

何かを隠すためのローテクな方法はcssを使うことです:

// Low-tech hiding of update-mesages
// source: http://wpsnipp.com/index.php/functions-php/hide-update-nag-within-the-admin/
function remove_upgrade_nag() {
   echo '<style type="text/css">
           .update-nag {display: none}
         </style>';
}
add_action('admin_head', 'remove_upgrade_nag');

これは多かれ少なかれ機能しますが、WordPressがメッセージを表示する場所を見つけるのは大変な作業です。

Add_action

もっと良い方法はアクションを使うことです。 wordpress-core(この文脈ではcoreはWordPress自身です)更新メッセージはwp-admin/includes/update.php、84行目のcore_update_footer、および139行目でupdate_nagという名前で起動されます。アクションを使ってこれらを無効にすることができます。

//hide core updates notification in the dashboard
function hide_wp_update_nag() {
    remove_action( 'admin_notices', 'update_nag', 3 ); //update notice at the top of the screen
    remove_filter( 'update_footer', 'core_update_footer' ); //update notice in the footer
}
add_action('admin_menu','hide_wp_update_nag');

代わりに:

add_action( 'admin_notices', 'update_nag', 3 );

あなたはマルチサイトのために、使うことを望むかもしれません:

add_action( 'network_admin_notices', 'update_nag', 3 );

ダッシュボードの通知は少し難しくなりますが、これでうまくいくはずです。

//hide plugin updates notification in the dashboard
function hide_plugin_update_indicator(){
    global $menu,$submenu;
    $menu[65][0] = 'Plugins';
    $submenu['index.php'][10][0] = 'Updates';
}
add_action('admin_menu', 'hide_plugin_update_indicator');

更新通知は隠されていますが、それでも何かが次のページで更新される必要があることを確認することができます(そして更新を行います):

  • /wp-admin/update-core.php
  • /wp-admin/themes.php
  • /wp-admin/plugins.php

更新を無効にする

更新を完全に無効にしたい場合は、次のようにします。

//http://codex.wordpress.org/Transients_API
add_filter('pre_site_transient_update_core', create_function('$a', "return null;")); // disable core update
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // disable plugin update
add_filter('pre_site_transient_update_themes', create_function('$a', "return null;")); // disable theme update

これにより、コア、プラグイン、およびテーマの更新が完全に無効になります。

プラグイン

このコードを 機能性プラグイン に入れると、すべてのテーマで機能します。

いくつかの既製のプラグイン:

ボーナス

更新から特定のプラグインを除外する方法を見つけるには:

10