Im letzten Teil dieses Tutorials haben wir gelernt, wie man die TGM-Plugin-Aktivierungsklasse verwendet, um das Envato WordPress Toolkit-Plugin immer dann zu erfordern, wenn unser Theme verwendet wird. Das Plugin ermöglicht es Benutzern, gekaufte Themes im Admin zu installieren und zu aktualisieren.
Im nächsten Teil erfahren Sie, wie Sie die Envato WordPress Toolkit Library implementieren, damit wir mithilfe der Envato Marketplace API regelmäßig prüfen können, ob Updates für unser Theme verfügbar sind.
Wenn ein Update verfügbar ist, zeigen wir im Admin eine Benachrichtigung an und weisen Benutzer an, auf das Plugin zuzugreifen, um es zu aktualisieren.
Wir müssen zunächst die Toolkit-Bibliothek in unser Projekt einbinden. Laden Sie die ZIP-Datei der Envato WordPress Toolkit Library herunter. Entpacken Sie den Ordner envato-wordpress-toolkit-library und kopieren Sie ihn in den inc-Ordner in Ihrem Theme. Am Ende sollten Sie diese Wege haben:
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.
Jetzt können wir mit dem Codieren beginnen. Wir schließen den admin_init
-Betrieb an. Fügen Sie den folgenden Code zu Ihrer functions.php hinzu:
/** * Load the Envato WordPress Toolkit Library check for updates * and direct the user to the Toolkit Plugin if there is one */ function envato_toolkit_admin_init() { // Include the Toolkit Library include_once( get_template_directory() . '/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php' ); // Add further code here } add_action( 'admin_init', 'envato_toolkit_admin_init' );
Die Toolkit-Bibliothek erfordert einen Envato-Benutzernamen und einen API-Schlüssel, um zu funktionieren. Da wir im vorherigen Tutorial das Toolkit-Plugin benötigten, können wir die Eingabewerte für die Felder „Benutzername“ und „API-Schlüssel“ in den Einstellungen verwenden. Wenn diese Felder nicht ausgefüllt sind, können wir eine Benachrichtigung anzeigen, in der wir den Benutzer auffordern, sie im Toolkit-Plugin einzugeben.
// Use credentials used in toolkit plugin so that we don't have to show our own forms anymore $credentials = get_option( 'envato-wordpress-toolkit' ); if ( empty( $credentials['user_name'] ) || empty( $credentials['api_key'] ) ) { add_action( 'admin_notices', 'envato_toolkit_credentials_admin_notices' ); return; }
Wir müssen die entsprechende Hook-Funktion extern hinzufügen, um unsere Verwaltungsbenachrichtigungen anzuzeigen:
/** * Display a notice in the admin to remind the user to enter their credentials */ function envato_toolkit_credentials_admin_notices() { $message = sprintf( __( "To enable theme update notifications, please enter your Envato Marketplace credentials in the %s", "default" ), "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" ); echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>"; }
Toolkit Library sucht immer mithilfe der Envato Marketplace API nach Theme-Updates. Dies ist nicht gut, da die Ausführung bei jedem Besuch der Admin-Seite durch einen Benutzer die Ladezeit der Seite erheblich verlangsamt. Wir müssen nur regelmäßig nach Updates suchen.
Eine Überprüfung alle 3 Stunden klingt nach einer guten Idee:
// Check updates only after a while $lastCheck = get_option( 'toolkit-last-toolkit-check' ); if ( false === $lastCheck ) { update_option( 'toolkit-last-toolkit-check', time() ); return; } // Check for an update every 3 hours if ( 10800 < ( time() - $lastCheck ) ) { return; } // Update the time we last checked update_option( 'toolkit-last-toolkit-check', time() );
Endlich können wir mithilfe dieser Bibliothek nach Updates suchen:
// Check for updates $upgrader = new Envato_WordPress_Theme_Upgrader( $credentials['user_name'], $credentials['api_key'] ); $updates = $upgrader->check_for_theme_update(); // If $updates->updated_themes_count == true then we have an update!
Von diesem Moment an haben Sie die Möglichkeit, die Funktionen der Toolkit-Bibliothek $upgrader->upgrade_theme();
zu nutzen, um Ihr Theme automatisch zu aktualisieren. Ich glaube jedoch, dass es generell eine gute Idee ist, dem Benutzer eine Wahl zu lassen.
Mein Vorschlag ist, nur Benachrichtigungen für Theme-Updates anzuzeigen und Benutzern die Aktualisierung mit dem Toolkit-Plugin zu ermöglichen:
// Add update alert, to update the theme if ( $updates->updated_themes_count ) { add_action( 'admin_notices', 'envato_toolkit_admin_notices' ); }
Wir müssen die Funktion anzeigen, die die Benachrichtigung außerhalb der aktuellen Funktion anzeigt:
/** * Display a notice in the admin that an update is available */ function envato_toolkit_admin_notices() { $message = sprintf( __( "An update to the theme is available! Head over to %s to update it now.", "default" ), "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" ); echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>"; }
Sie denken vielleicht, es sei in Ordnung, einfach die Toolkit-Bibliothek ohne das Toolkit-Plugin zu verwenden und dann vielleicht einfach unseren eigenen Benutzernamen und unser eigenes API-Schlüsselformular in den Designoptionen anzuzeigen.
Obwohl dies durchaus möglich ist, bietet uns die Verwendung dieses Plugins einige Vorteile:
Das ist es! Wir haben das Envato WordPress Toolkit-Plugin und die Bibliothek integriert, um nach Theme-Updates zu suchen. Jetzt erhalten unsere Kunden eine Administratorbenachrichtigung, sobald ein Update auf dem Markt verfügbar ist. Das Beste, was wir gemacht haben, ist, dass sie problemlos Aktualisierungen durchführen können, ohne den Administrator zu verlassen.
Sie können den vollständigen Quellcode über den Link über dem Artikel herunterladen. Der Code deckt auch Themen ab, die im vorherigen Teil dieses Tutorials behandelt wurden.
Da dies meine erste Tutorial-Reihe ist, würde ich mich über Feedback, Kommentare und Vorschläge sehr freuen. Teilen Sie mir Ihre Meinung mit!
Das obige ist der detaillierte Inhalt vonErweitern Sie Ihr Theme mit dem Envato WordPress Toolkit: Library. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!