有没有办法禁用特定插件的更新通知?

作为一个插件开发人员,我在个人站点上安装了一些插件,这些插件使用svn干线版本进行测试,但是相同的插件可从插件网站。在这种情况下,WP认为最新版本是最新发布的版本,并不断尝试警告我有可用的更新。

我仍然希望看到其他插件的更新通知,但令人讨厌不断忽略标题中的Updates (2)通知!

评论

只需打开插件文件,然后将版本号更改为9.9.9

抱歉@Bainternet,但是这样做太过骇客了,因为该站点是svn-checkout,并且插件来自svn:external对插件开发代码的引用。在生产服务器上拥有本地修改的文件不是一种选择。 Hameedullah的筛选器起作用,因为它已保存在该站点的代码存储库中。

是的,我错过了有关在svn上运行网站的部分

您也可以只使用WordPress.org上Websiteguy的Disable Updates Manager插件。

#1 楼

例如,如果您不希望Wordpress显示akismet的更新通知,则可以这样做:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );


评论


我将其放置在./wp-config.php的末尾,替换了插件文件路径,它完成了工作。

–卡莱布
2011年6月21日15:20

您可以将其放置在主题的functions.php中(如果不可能的话),然后可以放置在单独的插件文件中。我认为将其放入wp-config.php不是一个好主意。

–汉密杜拉汗
2011年6月21日在17:07

我真的不希望我的功能与主题相关,添加插件似乎就像对我所拥有的插件进行黑客一样多。您能解释一下为什么您认为wp-config.php不是放置特定于站点的配置黑客的好地方吗?

–卡莱布
2011年6月22日13:20

很好的解决方案,在functions.php中对我来说效果很好。只需添加另一个unset()就可以轻松地将更多插件添加到列表中。好的提示Hameedullah ..

–拉尔斯·库达尔(Lars Koudal)
2011年11月13日10:28



对于与@Caleb相同的说明,请在wp-content文件夹中创建一个名为:mu-plugins的新文件夹,并创建一个放入其中的小插件。如上所述,在wp-config.php中添加它是绝对不对的。

–查尔斯
16-10-6在13:34

#2 楼

Hameedullah Khan的答案将抛出PHP警告。取消设置该插件的响应之前,请包含此if子句以确保它是对象。

'警告:尝试修改非对象的属性'

尝试一下为避免警告(插件文件本身的代码):

// remove update notice for forked plugins
function remove_update_notifications($value) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ plugin_basename(__FILE__) ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );


我喜欢将其放在实际的插件中。由于我只是因为编辑或分叉代码并且不想丢失对更新的修改而仅禁用插件的更新,所以我已经编辑了插件,因此不介意对其进行更多编辑。它使我的功能文件更整洁。但是,如果您希望将其放入函数文件中,那么该方法的好处就是,您可以通过为该插件添加另一条未设置的行(例如,functions.php的代码)来从更新中删除多个插件:

// remove update notice for forked plugins
function remove_update_notifications( $value ) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ 'hello.php' ] );
        unset( $value->response[ 'akismet/akismet.php' ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );


评论


为此。我在直接在插件中使用此代码时遇到问题,当它是一个插件时似乎还可以,但是当我与其他插件(差异功能名称)一起使用时,我丢失了所有插件的通知,并且wp-repo插件的“查看详细信息”链接也丢失了不见了使用您的支票但放置在我主题的functions.php中,它更加可靠,而不会干扰其他插件的更新通知。最后,不在插件中的好处是不需要该插件处于活动状态才能正常工作。使用此代码禁用插件显然会再次显示更新通知。

–菲利普·英格拉姆(Philip Ingram)
19年4月4日在1:38

#3 楼

禁用所有带有代码的更新通知

function remove_core_updates(){
        global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
    }
    add_filter('pre_site_transient_update_core','remove_core_updates');
    add_filter('pre_site_transient_update_plugins','remove_core_updates');
    add_filter('pre_site_transient_update_themes','remove_core_updates');


代码将禁用WordPress核心,插件和主题的更新通知。

评论


“个人插件”是关键

– Gangesh
19年7月18日在10:30

@Gangesh,我想他想禁用某些特定插件的通知

–穆罕默德·比拉勒(Muhammad Bilal)
19年7月18日在13:20