阻止/禁用自动更新检查

时间:2013-06-10 作者:Synetech

WordPress会自动检查自身以及所有已安装主题和插件的更新。这给WordPress页面的加载增加了令人烦恼的长时间延迟。In每天只发生一次,后续页面加载无法完成,但它太长了,让我重新考虑是否值得打开第一页(尤其是如果我只需要做一件快速的事情,而不是花一整天在WordPress上)。

无论如何,我只是偶尔更新一次,而且更愿意手动执行更新,所以我创建了一个插件来删除管理栏上的更新按钮。我原以为这样就可以了,但很明显,in只删除了按钮,实际的检查仍在后台执行。

世界上所有其他程序都允许您关闭自动更新,因此我希望WordPress应该有同样的方法,但如果有,它就有点太隐蔽了。

当我试图找到一个解决方案时,出现的所有问题都是相反的,关于如何强制自动更新实际应用(而不仅仅是自动检查更新)。

如何在WordPress中关闭自动更新检查?

4 个回复
SO网友:Ravi Patel

如何禁用核心自动更新但启用插件和主题自动更新

如果您想停止WordPress核心的自动更新,但要为您的插件和/或主题启用它们,您可以在wp配置中添加这些行。php文件:停止核心自动更新:

define( \'WP_AUTO_UPDATE_CORE\', false );
然后启用插件/主题:

add_filter( \'auto_update_plugin\', \'__return_true\' );
add_filter( \'auto_update_theme\', \'__return_true\' );
如何完全禁用WordPress自动更新

如果要完全禁用WordPress自动更新,请打开wp配置。php文件,并将此行添加到其中:

define( \'AUTOMATIC_UPDATER_DISABLED\', true );

SO网友:Maciej Krawczyk

这对我在localhost上禁用它起到了作用,这非常恼人,因为它位于防火墙后面,超时等待时间很长。

define( \'WP_HTTP_BLOCK_EXTERNAL\', true );
define( \'AUTOMATIC_UPDATER_DISABLED\', true );
define( \'WP_AUTO_UPDATE_CORE\', false );
请注意,我不确定是否需要禁用WP\\u HTTP\\u BLOCK\\u EXTERNAL。我不建议您在需要与其他服务器通信的服务器上禁用它。

SO网友:kaiser

马克·贾奎斯(MarkJarquith)不久前已经在他的博客上发布了这一消息。基本上,它只是通过wp HTTP API过滤器向wp dot org上的公共SVN repos发出请求。

对于插件(必须放置在插件内):

add_filter( \'http_request_args\', \'wpse_102554_deny_plugin_updates\', 5, 2 );
function wpse_102554_deny_plugin_updates( $r, $url )
{
    if ( 0 !== strpos( $url, \'http://api.wordpress.org/plugins/update-check\' ) )
        return $r;

    $plugins = unserialize( $r[\'body\'][\'plugins\'] );
    unset(
        $plugins->plugins[ plugin_basename( __FILE__ ) ],
        $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
    );
    $r[\'body\'][\'plugins\'] = serialize( $plugins );

    return $r;
}
主题(必须放在functions.php 主题的,并且仅适用于当前活动的主题):

add_filter( \'http_request_args\', \'wpse_102554_deny_theme_updates\', 5, 2 );
function wpse_102554_deny_theme_updates( $r, $url )
{
    if ( 0 !== strpos( $url, \'http://api.wordpress.org/themes/update-check\' ) )
        return $r;

    $themes = unserialize( $r[\'body\'][\'themes\'] );
    unset(
        $themes[ get_option( \'template\' ) ],
        $themes[ get_option( \'stylesheet\' ) ]
    );
    $r[\'body\'][\'themes\'] = serialize( $themes );

    return $r;
}
约翰·布莱克本写过a plugin to disable theme updates.

SO网友:Paul G.

好的,这里有一个解决方案,可以删除可用的更新,还可以防止更新检查。

此解决方案假定PHP>5.3(因为它使用匿名函数)

第1部分)清除任何现有更新:

add_filter( \'site_transient_update_plugins\',
    function ( $oUpdatesResult ) {
        if ( ! is_object( $oUpdatesResult ) ) {
            $oUpdatesResult = new stdClass();
        }
        $oUpdatesResult->response = array();
        return $oUpdatesResult;
    },
    PHP_INT_MAX
);
第2部分)防止运行实际检查的传出HTTP请求:

add_filter( \'pre_http_request\',
    function ( $bFalse, $aReqParams, $sUrl ) {
        if ( strpos( $sUrl, \'//api.wordpress.org/plugins/update-check/1.1/\' ) ) {
            $bFalse = null;
        }
        return $bFalse;
    },
    PHP_INT_MAX,
    3
);
注意事项:

WordPress只在管理员端加载某些页面时检查更新,如插件页面和更新页面,因此您并没有真正获得任何性能

结束

相关推荐

注意:未定义的索引:在Options-Framework.php中

我在选项框架中生成以下通知。php。注意:未定义索引:在选项框架中。php我认为这与卫生处理有关,但不知道如何解决这个问题。我在选项中定义了以下数组。php// Pull all the custom taxonomies into an array $options_password_taxonomies = array(); $taxonomies_password_terms_obj = get_terms(\'password_gallery_category\'); fo