Desativar notificação de atualização para plugins individuais

49

Existe uma maneira de desativar as notificações de atualização para plugins específicos?

Como desenvolvedor de plug-ins, tenho alguns plug-ins instalados no meu site pessoal usando a versão svn trunk para teste, mas os mesmos plug-ins estão disponíveis no site do plug-in. Nesses casos, o WP considera que a versão mais recente é a versão publicada mais recentemente e tenta constantemente me avisar que há atualizações disponíveis.

Ainda quero ver notificações de atualizações em outros plugins, mas é irritante ignorar constantemente o Updates (2)aviso no cabeçalho!

Caleb
fonte
Basta abrir o arquivo do plug-in e alterar o número da versão para algo como 9.9.9
Bainternet 21/11/11
Desculpe @Bainternet, mas isso teria sido muito hackeado, porque o site é um svn-checkout e o plugin vem de uma svn:externalreferência ao código de desenvolvimento do plugin. Ter um arquivo modificado localmente em um servidor de produção não é uma opção. O filtro do Hameedullah funciona porque é salvo no repositório de códigos do site.
Caleb
Sim, eu perdi a parte sobre o site em execução no SVN
Bainternet
Você também pode usar o plug-in Disable Updates Manager da Websiteguy no WordPress.org.
matthew 30/05

Respostas:

67

Por exemplo, se você não deseja que o Wordpress mostre notificações de atualização para o akismet, faça o seguinte:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
Hameedullah Khan
fonte
11
Coloquei isso no final de ./wp-config.php, substitui o caminho do arquivo de plug-in e ele fez o trabalho.
Caleb
6
Você pode colocar isso em functions.php do seu tema, se não for possível, você pode colocar em um arquivo de plugin separado. Na minha opinião, colocar isso no wp-config.php não é uma boa ideia.
Hameedullah Khan
11
Eu realmente não quero minha função vinculada ao tema, e adicionar um plug-in parece tão hackeado quanto invadir o plug-in que eu tenho. Você pode explicar por que você acha que o wp-config.php não é um bom lugar para colocar hacks de configuração específicos do site?
Caleb
Solução muito boa, que funcionou bem para mim em functions.php. É fácil adicionar mais plugins para a lista simplesmente adicionando outra unset () ... Boa dica Hameedullah ..
Lars Koudal
2
Para aqueles com as mesmas observações que o @Caleb, crie na pasta wp-content uma nova pasta chamada: mu-pluginse crie um pequeno plugin no qual você solte. Para adicioná-lo como mencionado acima por alguns no wp-config.phpé absolutamente o lugar errado para fazer.
Charles #
31

A resposta de Hameedullah Khan emitirá um aviso de PHP. Inclua esta cláusula if para verificar se é um objeto antes de desabilitar a resposta para esse plug-in.

'Aviso: Tentativa de modificar propriedade de não-objeto'

Tente isso para evitar os avisos (código para o próprio arquivo de plug-in):

// 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' );

Eu gosto de colocar isso no plugin real. Como desabilitei apenas as atualizações de um plug-in porque editei ou bifurquei o código e não quero perder minhas edições em uma atualização, já editei o plug-in e, portanto, não me importo de editá-lo mais. Isso mantém meu arquivo de funções um pouco mais limpo. Mas, se desejar, você pode colocá-lo no arquivo de funções e um benefício para esse método é que você pode remover vários plugins das atualizações adicionando outra linha não configurada para esse plug-in da seguinte maneira (código para 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' );
circlecube
fonte
Thx por isso. Eu tive problemas ao usar esse código diretamente nos plug-ins, parecia ok quando era um plug-in, mas assim que o fiz com outros (nomes de funções diferentes), perdi notificações para todos os plug-ins e o link "ver detalhes" dos plug-ins wp-repo também desaparecido. Usando suas verificações, mas colocando no functions.php do meu tema, foi mais confiável sem interferência de notificações de atualização para outros plugins. Por fim, não estar no plug-in tem o benefício de não precisar desse plug-in ativo para funcionar. Desabilitar um plug-in com esse código obviamente apresentará notificações de atualização novamente.
Philip Ingram
2

Desativar todas as notificações de atualização com código

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');

O código desativará as notificações de atualização para o núcleo, plugins e temas do WordPress.

Super Model
fonte
"plugins individuais" é a chave
Gangesh
@Gangesh, acho que ele quer desativar as notificações de alguns plugins específicos
Super Model