Se rinomino un plugin (nel suo file php principale) ricevo ancora notifiche di aggiornamento?


17

Di recente sono stato costretto a modificare i file core di un plugin. Ho aggiornato il titolo di detto plugin per indicare che è stato modificato.

La mia domanda è: il plug-in riceverà ancora notifiche di aggiornamento? In tal caso, probabilmente disabiliterò gli aggiornamenti per questo plugin, per impedire a qualcuno di dimenticare i miei aggiornamenti e sovrascrivere.

Idealmente, vorrei vedere se il plug-in riceve aggiornamenti, ma non consentire loro di accadere semplicemente facendo clic su aggiorna. (dovrebbe essere disinstallato e reinstallato o simile).


A proposito di questo problema, ho recentemente pubblicato una segnalazione di bug sulla traccia di WordPress: backup di una directory di plugin / temi. Penso che un semplice backup automatico all'interno ma prima della funzione di aggiornamento automatico renderebbe le cose molto più facili per tutti. Non vedo alcun motivo per cui questo non è stato fatto quando è stato rilasciato l'aggiornamento automatico la prima volta, né perché non è stato fatto nel frattempo, né perché non dovrebbe essere fatto.
Ando,

Risposte:


17

Come dice SickHippie e AFAIK, non puoi avere entrambi. Sto aggiungendo una risposta con le informazioni che ho raccolto in questo stack.


Disabilita la notifica di aggiornamento per i singoli plug-in

Bainternet in un commento:

Apri semplicemente il file del plugin e modifica il numero di versione in qualcosa come 9.9.9

Hameedullah Khan's Answer (rimuovendo l'avviso di aggiornamento di Akismet):

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

Cosa attiva un avviso di aggiornamento plug-in

Risposta di Otto:

L'API utilizza un meccanismo piuttosto elaborato per abbinare i plug-in ai plug-in di cui è a conoscenza, ma queste sono le cose principali verificate: URI plug-in, Nome plug-in e Slug plug-in (il nome della directory in cui si trova il plug-in)

Cambia una di queste e riduci le possibilità che trovi una corrispondenza, ma potrebbe comunque ottenerla se due di loro corrispondono, ad esempio.

Le informazioni in readme.txt non vengono utilizzate per questo. Viene utilizzata l'intestazione del file PHP del plugin stesso.


Approccio alternativo 1


Approccio alternativo 2 tratto dai commenti

  • cambia il nome del plug-in, il numero di versione e il nome della directory
  • installa il plugin originale ma lascialo disattivato per ricevere le notifiche di aggiornamento
  • aggiungi un messaggio personalizzato alla descrizione del plugin (o sostituisci l'originale)
  • rimuovere le azioni del plug-in (Attiva | Modifica | Elimina) e la casella di controllo per Azioni in blocco

inserisci qui la descrizione dell'immagine

add_filter( 'all_plugins', 'wpse_56968_on_list_plugins' );
add_filter( 'plugin_action_links_akismet/akismet.php', 'wpse_56968_remove_plugin_actions', 10, 4 );
add_action( 'admin_head-plugins.php', 'wpse_56968_remove_plugin_checkbox' );

function wpse_56968_on_list_plugins( $plugins )
{
    $plugins['akismet/akismet.php']['Description'] = '<strong>*** NOTICE: PLUGIN ONLY TO CHECK UPDATES IN THE ORIGINAL ONE! ***</strong> ';// . $plugins['akismet/akismet.php']['Description'];
    return $plugins;
}

function wpse_56968_remove_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) 
{
    unset( $actions['activate'], $actions['edit'], $actions['delete'] );
    return $actions; 
}

function wpse_56968_remove_plugin_checkbox()
{
    ?>
        <script type="text/javascript">
            jQuery(document).ready( function($) {
                $('tr#akismet th.check-column').html('&nbsp;')
            });     
        </script>
    <?php
}

Biglietti core correlati


Risposta fantastica! Forse cambierò il nome del plug-in, il numero di versione e il nome della directory, quindi installerò il plug-in originale ma lo lascerò disattivato in modo da poter vedere quando si aggiorna.
Zach Lysobey,

1
@ZachL - Fantastico! Dovrebbe funzionare bene!
SickHippie il

2
Puoi anche modificare l'intestazione del plugin originale Descriptione aggiungere un avviso, come:Description: ONLY FOR REFERENCE, DON'T ACTIVATE!...[rest of the description]
brasofilo,

1
@ZachL - Aggiunta una seconda alternativa completa basata su questo commento :)
brasofilo,

3

Non è possibile disabilitare gli aggiornamenti ma non le notifiche di aggiornamento: sono collegate tra loro.

Per disabilitare del tutto le notifiche, cambia il nome della cartella in cui si trova il plugin.

Il mio metodo personale è anteporre 3 a al titolo del plugin nel plugin.phpfile principale , quindi nella mia lista di plugin vedo AAA/Plugin Name. Questo lo mette in cima all'elenco come riferimento e verrà mostrato nell'elenco dei plug-in e nell'elenco degli aggiornamenti. È fondamentalmente una bandiera personale, quindi so di non aggiornare automaticamente quei plug-in specifici.


Grazie per la risposta. Solo per chiarire, stai dicendo che la ridenominazione di un plugin NON interrompe le sue notifiche di aggiornamento?
Zach Lysobey,

Per quanto riguarda la tua prima frase ... Sono sicuro che avrei potuto trovare un modo per ottenere questo effetto, forse con alcuni js subdoli per rimuovere semplicemente il link dalla notifica.
Zach Lysobey,

AFAIK, rinominare il file o il titolo principale di un plugin in quel file principale non interrompe le notifiche di aggiornamento. Sono abbastanza sicuro che il Plugin Repository tira in base al nome della cartella (lo zip scaricato dal Repo dovrebbe avere lo stesso nome più il numero di versione). Per la disabilitazione dell'aggiornamento, c'è l'elenco dei plug-in e l'elenco degli aggiornamenti, quindi assicurati che il tuo JS si attivi in ​​entrambi i posti (inoltre, condividi quel JS - potrebbe essere utile).
SickHippie il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.