Als WordPress-Autoren bei ThemeForest möchten wir unsere Kunden zufrieden stellen, indem wir sie gelegentlich mit Fehlerbehebungen und Theme-Verbesserungen versorgen. Ein zentrales Problem für uns war jedoch, wie wir unsere Benutzer benachrichtigen können, wenn ein Update zum Download verfügbar ist.
In der Vergangenheit musste jeder von uns seine eigene Theme-Update-Notifier-Implementierung programmieren. Während es jetzt im Envato Marketplace ein Kontrollkästchen zum Aktivieren von Projektaktualisierungsbenachrichtigungen gibt, müssen Benutzer es immer noch für jedes Projekt aktivieren und Theme-Aktualisierungen manuell durchführen.
Wäre es nicht besser, wenn Update-Benachrichtigungen im WordPress Admin Center angezeigt würden? Und kann das Update sofort im Admin durchgeführt werden? Glücklicherweise haben wir jetzt das Envato WordPress Toolkit-Plugin und die Toolkit-Bibliothek.
In dieser Serie erfahren Sie, wie Sie diese Toolkits in Ihr Theme integrieren.
In diesem Tutorial implementieren wir das Envato WordPress Toolkit-Plugin und die Bibliothek in unser Theme. Wenn unser Theme aktiviert ist, werden Benutzer aufgefordert, das Toolkit-Plugin zu installieren und zu aktivieren.
Sobald das Plugin aktiv ist, sucht unser Theme regelmäßig nach Updates und wenn ein Update gefunden wird, wird im Admin eine Benachrichtigung angezeigt, die den Benutzer zum Plugin weiterleitet, um das Theme zu aktualisieren.
Dieses Tutorial ist in zwei Teile unterteilt:
Das Envato WordPress-Toolkit gibt es in zwei Varianten mit unterschiedlichen Verwendungszwecken und Zwecken. Um eine Verwechslung zu vermeiden, hier ein Vergleich:
Wir müssen zunächst einige Dateien in das Projekt einbinden. Wir bündeln das Toolkit-Plugin mit unserem Theme und verwenden die TGM-Plugin-Aktivierung, um das Toolkit zu installieren und zu aktivieren.
Hinweis: Sie können den Speicherort der oben genannten Dateien entsprechend Ihren Anforderungen ändern. Alternativ können Sie den vollständigen Quellcode über den Download-Link oben in diesem Artikel herunterladen.
Da wir nun die erforderlichen Dateien haben, beginnen wir mit dem Codieren. Wir müssen die TGM-Plugin-Aktivierungsklasse in functions.php einbinden und in die benutzerdefinierte WordPress-Aktion einbinden. Hier richten wir einige Einstellungen für das TGM ein und definieren die einzubindenden Plugins.
/** * Load the TGM Plugin Activator class to notify the user * to install the Envato WordPress Toolkit Plugin */ require_once( get_template_directory() . '/inc/class-tgm-plugin-activation.php' ); function tgmpa_register_toolkit() { // Code here } add_action( 'tgmpa_register', 'tgmpa_register_toolkit' );
Als nächstes konfigurieren wir die erforderlichen Parameter, um das Toolkit-Plug-in einzubinden. Fügen Sie innerhalb der Funktion tgmpa_register_toolkit
den folgenden Code hinzu. Wenn Sie in Schritt 1 einen anderen Plugin-Ordner angegeben haben, ändern Sie den Pfad im Quellparameter.
// Specify the Envato Toolkit plugin $plugins = array( array( 'name' => 'Envato WordPress Toolkit', 'slug' => 'envato-wordpress-toolkit-master', 'source' => get_template_directory() . '/plugins/envato-wordpress-toolkit-master.zip', 'required' => true, 'version' => '1.5', 'force_activation' => true, 'force_deactivation' => false, 'external_url' => '', ), );
Sie können auch andere Plugins hinzufügen, indem Sie der Variablen $plugins
weitere Arrays hinzufügen.
Stellen Sie dann die TGM-Optionen ein. Fügen Sie außerdem in der tgmpa_register_toolkit
-Funktion den folgenden Code unter dem vorherigen Schritt hinzu, um das TGM zu konfigurieren. Ich werde nicht näher darauf eingehen, was die einzelnen Einstellungen bewirken. Wenn Sie mehr über diese Einstellungen erfahren möchten, finden Sie auf der TGM-Plugin-Aktivierungswebsite ausführliche Erläuterungen zu allen Einzelheiten.
// i18n text domain used for translation purposes $theme_text_domain = 'default'; // Configuration of TGM $config = array( 'domain' => $theme_text_domain, 'default_path' => '', 'parent_menu_slug' => 'admin.php', 'parent_url_slug' => 'admin.php', 'menu' => 'install-required-plugins', 'has_notices' => true, 'is_automatic' => true, 'message' => '', 'strings' => array( 'page_title' => __( 'Install Required Plugins', $theme_text_domain ), 'menu_title' => __( 'Install Plugins', $theme_text_domain ), 'installing' => __( 'Installing Plugin: %s', $theme_text_domain ), 'oops' => __( 'Something went wrong with the plugin API.', $theme_text_domain ), 'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), 'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), 'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), 'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), 'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), 'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), 'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), 'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), 'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ), 'activate_link' => _n_noop( 'Activate installed plugin', 'Activate installed plugins' ), 'return' => __( 'Return to Required Plugins Installer', $theme_text_domain ), 'plugin_activated' => __( 'Plugin activated successfully.', $theme_text_domain ), 'complete' => __( 'All plugins installed and activated successfully. %s', $theme_text_domain ), 'nag_type' => 'updated' ) );
wird $theme_text_domain
变量更改为您正在使用的文本域,或将其保留为 default
.
Lassen Sie uns abschließend das TGM initialisieren, bevor die tgmpa_register_toolkit
-Funktion endet.
tgmpa( $plugins, $config );
Speichern Sie jetzt Ihre functions.php
Versuchen Sie, Ihr Theme zu aktivieren. Wenn Sie das Envato WordPress Toolkit-Plugin nicht installiert oder aktiviert haben, sollte eine Benachrichtigung ähnlich dieser angezeigt werden:
Soweit wir jetzt wissen, können wir die Serie tatsächlich stoppen und Ihre Benutzer können Themen aus dem Admin-Bereich heraus aktualisieren. Benutzer werden jedoch nur Aktualisierungen im Toolkit-Administrationsbereich sehen.
Teil 2 dieses Tutorials zeigt Ihnen, wie Sie die Envato WordPress Toolkit-Bibliothek integrieren und Administratorbenachrichtigungen anzeigen, wenn Theme-Updates in ThemeForest stattfinden.
Das obige ist der detaillierte Inhalt vonVerbessern Sie Ihr Theme: Integrieren Sie das Envato WordPress Toolkit-Plugin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!