Každý, kdo dělá weby na WordPressu to zná. V některých pluginech jsou potřeba udělat změny. Klient si prostě přeje, aby to fungovalo trochu jinak. Možnosti máte dvě. Můžete napsat vlastní plugin, nebo jeho funkčnost převést na šablonu. Druhou možností, která je hodně využívaná a zároveň zatracovaná, je upravit kód pluginu.
A zde vzniká velký problém s aktualizacemi. V tu chvíli, kdy je pro plugin dostupná aktualizace, zobrazí se v administraci barevné pozadí pluginu.
Dobře, můžete namítnout, že ideální je do kódu pluginu nezasahovat, ale nežijeme v ideálním světě, vývoj custom funkce nemusíte dostat zaplacený, zkrátka, někdy je to jediná cesta. Máme tedy dvě možnosti.
Odstranění upozornění na aktualizaci pluginu
I když klientovi řekneme, že se tento plugin nesmí aktualizovat, tak na to může zapomenout, nebo se najde aktivní spolupracovník, co prostě pluginy aktualizuje. Proto můžeme odstranit upozornění na aktualizaci, pomocí tohoto kódu:
add_filter( 'site_transient_update_plugins', 'musilda_remove_plugin_updates' );
function musilda_remove_plugin_updates( $value ) {
unset( $value->response['muj-plugin/muj-plugin.php'] );
return $value;
}
Odstranění pluginu, ze seznamu ostatních pluginů
Tento způsob je trochu radikálnější, ale zase máte jistotu, že se vám nikdo nepokusí plugin ani neodinstalovat.
Stačí použít následující funkci:
add_action('pre_current_active_plugins', 'musilda_hide_plugin');
function musilda_hide_plugin() {
global $wp_list_table;
$hide = array('muj-plugin/muj-plugin.php');
$myplugins = $wp_list_table->items;
foreach ($myplugins as $key => $val) {
if (in_array($key,$hide)) {
unset($wp_list_table->items[$key]);
}
}
}
Varování
Pokud budete něco podobného dělat, musíte si uvědomit, že u složitějších pluginů, mohou být aktualizacemi opravovány bezpečnostní chyby, takže doporučuji si dobře rozmyslet, než funkce použijete.