Premium-Themes kommen oft nicht alleine, sondern bringen eine Reihe von erforderlichen oder empfohlenen Erweiterungen mit. Installiert und aktiviert man nicht alle, zum Beispiel weil man keinen oder nur einen Slider verwenden will und nicht gleich alle fünf, wird man von Aufforderungen wie This theme requires the following plugin...
oder The following recommended plugins are currently inactive...
immer wieder neu konfrontiert.
Zuständig für die Überwachung und Meldungen über nicht installierte oder aktivierte Komponenten ist in vielen Fällen TGM Plugin Activation. Das lässt sich ganz einfach feststellen, indem man die Dateien des Parents nach tgmpa_register
durchsucht.
Die Meldungen kann dann man abstellen, indem die Funktion die den Hook anspricht, im Theme-Setup des Childthemes aus diesem wieder entfernt.
function child_theme_setup() {
remove_action( 'tgmpa_register', 'parent_theme_register_required_plugins' );
}
add_action( 'after_setup_theme', 'child_theme_setup' );
Damit sind allerdings alle weg, inklusive eingebundenem Pagebuilder, wie zum Beispiel Visual Composer mit dem man vielleicht seine Landingpage gestalten will. Die weiterhin erforderlichen und erwünschten Komponenten müssen also im Childtheme neu festgelegt werden (entsprechende Passage(n) aus dem Partent-Theme kopieren).
add_action( 'tgmpa_register', 'child_theme_register_required_plugins' );
function child_theme_register_required_plugins() {
$logos = get_template_directory() . '/assets/images/';
$plugins = array(
array(
'name' => 'Visual Composer',
'slug' => 'js_composer',
'source' => get_template_directory() . '/framework/plugins/js_composer.zip',
'required' => true,
'version' => '5.4.2', /* Version beibehalten, da im Theme-Paket enthalten */
'force_activation' => false,
'force_deactivation' => false,
'logo' => $logos.'vc.png',
'author' => 'wpbakery',
'desc' => 'Visual Composer for WordPress is drag and drop frontend and backend page builder plugin that will save your time',
'type' => 'addon',
),
);
tgmpa( $plugins );
}
Von ehemals sieben Plugins von denen sechs nicht benötigt wurden bleibt in diesem Fall nur eines übrig, der Pagebuilder. Dieser ist (wie viele andere auch) selbst wieder ein Premium-Produkt. Seine realen Updatezyklen weichen von jenen ab die das Theme ausliefert. Direkte Updates des Plugins bekommt man aber nur, wenn man es extra kauft, was man aber nicht muss, weil es ja Bestandteil des gekauften Themes ist.
Aus dem Grund macht es keinen Sinn, wenn Aufforderungen zu Updates in der Pluginliste angezeigt werden.
Updateprüfung für ein themezugehöriges Plugin abschalten
function child_remove_update_notifications($value) {
unset( $value->response['js_composer/js_composer.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'child_remove_update_notifications' );
Alle anderen Updates werden nach wie vor angezeigt.
Hinweis: zuerst in einer Testumgebung ausprobieren. Mithin werden auch als required
deklarierte Plugins nicht zwingend benötigt, z.B. braucht kein Sliderplugin, wer keinen Slider verwendet.
Schreibe einen Kommentar