首页 > 新闻资讯 > 如何禁止WordPress检查插件或主题的更新

如何禁止WordPress检查插件或主题的更新

2条评论
标签:
更多

WordPress在例行更新检查时的隐私问题一直成为大家议论的焦点。由于WordPress程序不清楚一款主题或插件是否被列入WordPress.org库中,它得先检查下,如果还没有被收录就得通报WordPress.org库来拾取。这样有些人就会担心私下为客户开发的插件的header等地方可能会包含一些敏感信息,如开发人员的联系信息等。

如果你是一个插件或主题的开发人员,不希望自己开发的插件或主题也执行这些更新检查,本篇文章的代码就可以帮你实现;或者你只是不想某个插件总是提示你升级,这个方法也可以帮你:

适用于插件的:

function cws_hidden_plugin_12345( $r, $url ) {
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r; // Not a plugin update request. Bail immediately.
    $plugins = unserialize( $r['body']['plugins'] );
    unset( $plugins->plugins[ plugin_basename( __FILE__ ) ] );
    unset( $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ] );
    $r['body']['plugins'] = serialize( $plugins );
    return $r;
}
add_filter( 'http_request_args', 'cws_hidden_plugin_12345', 5, 2 );

只要把cws_hidden_plugin_12345字符串修改为插件的函数名就可以了。

适用于主题的:

function cws_hidden_theme_12345( $r, $url ) {
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
        return $r; // Not a theme update request. Bail immediately.
    $themes = unserialize( $r['body']['themes'] );
    unset( $themes[ get_option( 'template' ) ] );
    unset( $themes[ get_option( 'stylesheet' ) ] );
    $r['body']['themes'] = serialize( $themes );
    return $r;
}
add_filter( 'http_request_args', 'cws_hidden_theme_12345', 5, 2 );

把上面这段代码放到主题的functions.php文件中,同样地把 cws_hidden_theme_12345 字符串修改为你的主题函数名。这只适用于已激活的主题,如果该主题没有激活,此方法行不通。如果你想将它运用到未激活的主题,你得将这些代码放入插件中,不能使用 get_option( 'template' ) 或get_option( 'stylesheet' )来实现,你只能给需要隐藏的未激活主题硬编值。

* 版权声明:作者WordPress啦! 转载请注明出处。

#1
介绍的不错,文章很好,收藏了
#2
学习了