Erweitern Sie Ihr Theme mit dem Envato WordPress Toolkit: Library

王林
Freigeben: 2023-09-02 12:41:01
Original
925 Leute haben es durchsucht

使用 Envato WordPress 工具包增强您的主题:库

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.


1. Enthält eine Toolkit-Bibliothek

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:

  • mytheme/inc/envato-wordpress-toolkit-library/class-envato-protected-api.php
  • mytheme/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php

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.


2. Administrator-Hook-Funktion

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' );
Nach dem Login kopieren

3. Toolkit-Plug-in-Informationen verwenden

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;
}
Nach dem Login kopieren

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>";
}
Nach dem Login kopieren

4.Regelmäßige Update-Prüfungen

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() );
Nach dem Login kopieren

5. Nach Updates suchen

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!
Nach dem Login kopieren

6.Theme-Update-Benachrichtigung

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' );
}
Nach dem Login kopieren

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>";
}
Nach dem Login kopieren

Warum dieses Plugin überhaupt verwenden?

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:

  1. Bei einer neuen Theme-Aktivierung sucht unser Theme automatisch nach Updates, wenn das Toolkit-Plug-in zuvor installiert wurde.
  2. Wir müssen keine zusätzlichen Formulare hinzufügen, die Benutzer ausfüllen können.
  3. Benutzer können das Toolkit-Plugin selbst aktualisieren, sodass Änderungen in der Marketplace-API ohne Theme-Anleitung auf WordPress-Instanzen angewendet werden können.

Fazit

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage