WordPressのアップデート無効化方法

アップデートしようぜ…..

1. pre_site_transient_update_core で握りつぶす

WordPress/option.php at 389283f5bdf014df011f48dc78e1edcf6a234d1b · WordPress/WordPress

pre_site_transient_update_core というフィルタをカマすことで、 WordpressのAPIサーバーから取得してきた更新情報(のキャッシュデータ)を無理やり握りつぶすことができるそうで。

add_filter( 'pre_site_transient_update_core', '__return_zero' );

出典: たった1行改め3行でWordPressのバージョンアップ通知を非表示にする方法 – Simple Colors

書き方次第だが、単純にこれを設定すると、画面上から完全にアップデートができなくなるので、 どうするの?って感じ。

2. ユーザーのアップデート権限を潰す

権限

アップデートできないユーザーアカウントで運用する。 こっちのほうが正攻法では??

ざっとコード見る限り、ちゃんと権限周り考慮されて作られてそう。

WordPress/update-core.php at master · WordPress/WordPress

# wp-admin/update-core.php

    .
    .
    .

    if ( current_user_can( 'update_core' ) ) {
        core_upgrade_preamble();
    }

    .
    .
    .

WordPress/update.php at master · WordPress/WordPress

# wp-admin/includes/update.php

    .
    .
    .

// Called directly from dashboard
function update_right_now_message() {
    $theme_name = wp_get_theme();
    if ( current_user_can( 'switch_themes' ) ) {
        $theme_name = sprintf( '<a href="themes.php">%1$s</a>', $theme_name );
    }
    $msg = '';
    if ( current_user_can( 'update_core' ) ) {
        $cur = get_preferred_from_update_core();
        if ( isset( $cur->response ) && $cur->response == 'upgrade' ) {
            $msg .= '<a href="' . network_admin_url( 'update-core.php' ) . '" class="button" aria-describedby="wp-version">' . sprintf( __( 'Update to %s' ), $cur->current ? $cur->current : __( 'Latest' ) ) . '</a> ';
        }
    }

    .
    .
    .

ここらへんを潰せばいいのでは。

  • update_core
  • update_plugins
  • update_themes
  • install_themes
  • install_plugins
  • delete_themes
  • delete_plugins

その他

自動バックグラウンド更新のほうの潰し方: WP_AUTO_UPDATE_CORE