我在GPLv2许可下找到了很好的Wordpress插件,并在源代码中做了很多更改,插件现在做了别的事情。 我修改了作者(原始插件作者的学分),网址,版本号(从xxx 1.5到yyy 1.0)。
一切都很好,但是当Wordpress检查插件更新时,它会将我的插件yyy 1.0视为xxx 1.0并显示有关可用更新的通知。
我更改的插件yyy 1.0是通过从我的计算机复制文件而不是从WP存储库安装的。
我还需要改变什么?
答案 0 :(得分:37)
禁用插件更新
在插件根文件中添加此代码。
add_filter('site_transient_update_plugins', 'remove_update_notification');
function remove_update_notification($value) {
unset($value->response[ plugin_basename(__FILE__) ]);
return $value;
}
答案 1 :(得分:31)
将此代码放在theme.php主题文件中。这对我有用,我正在使用它。这也适用于特定的插件。在这里,您需要更改插件主文件URL以匹配插件的URL。
function my_filter_plugin_updates( $value ) {
if( isset( $value->response['facebook-comments-plugin/facebook-comments.php'] ) ) {
unset( $value->response['facebook-comments-plugin/facebook-comments.php'] );
}
return $value;
}
add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );
下面:
“facebook-comments-plugin”=> facebook评论插件文件夹名称
“facebook-comments.php”=>插件主文件。这可能与index.php不同
希望这会有所帮助。
答案 2 :(得分:21)
在插件文件中,将有一个检查更新的函数。原作者可能已将此命名为任何内容,因此您必须完成代码并检查每个函数及其功能。我认为这个功能在它的功能上会非常明显。
或者,您可以将其添加到插件文件中:
add_filter( 'http_request_args', 'dm_prevent_update_check', 10, 2 );
function dm_prevent_update_check( $r, $url ) {
if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
$my_plugin = plugin_basename( __FILE__ );
$plugins = unserialize( $r['body']['plugins'] );
unset( $plugins->plugins[$my_plugin] );
unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
$r['body']['plugins'] = serialize( $plugins );
}
return $r;
}
致谢:http://developersmind.com/2010/06/12/preventing-wordpress-from-checking-for-updates-for-a-plugin/
答案 3 :(得分:14)
最简单有效的方法是更改您不想更新的插件版本。 举个例子 如果我不想让wptouch得到更新,我打开它的defination文件,就像:
/*
Plugin Name: WPtouch Mobile Plugin
Plugin URI: http://www.wptouch.com/
Version: 4.0.4
*/
此处在版本中将 4.0.4 更改为 9999 喜欢:
/*
Plugin Name: WPtouch Mobile Plugin
Plugin URI: http://www.wptouch.com/
Version: 9999
*/
答案 4 :(得分:12)
add_filter('site_transient_update_plugins', '__return_false');
在function.php中添加上面的代码并禁用所有插件更新
答案 5 :(得分:2)
这是Mark Jaquith剧本的更新版本:
add_filter( 'http_request_args', 'widget_disable_update', 10, 2 );
function widget_disable_update( $r, $url ) {
if ( 0 === strpos( $url, 'https://api.wordpress.org/plugins/update-check/' ) ) {
$my_plugin = plugin_basename( __FILE__ );
$plugins = json_decode( $r['body']['plugins'], true );
unset( $plugins['plugins'][$my_plugin] );
unset( $plugins['active'][array_search( $my_plugin, $plugins['active'] )] );
$r['body']['plugins'] = json_encode( $plugins );
}
return $r;
}
答案 6 :(得分:1)
一个简单的解决方案是更改插件文件中的插件版本。 例如,如果插件版本为1.2.1。您可以像下面这样(插件作者永远无法达到的100.9.5)
<?php
/*
* Plugin Name: Your Plugin Name
* Description: Plugin description.
* Version: 100.9.5
*/
答案 7 :(得分:0)
手动禁用插件更新:
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
答案 8 :(得分:0)
将此行添加到wp-config.php以禁用插件更新:
define('DISALLOW_FILE_MODS',true);
答案 9 :(得分:0)
仅出于完整性考虑,这里还有一个插件旨在阻止所选其他插件的更新:
https://github.com/daggerhart/lock-plugins
here(德语)中提供了有关其背景和功能模式的一些信息。