En tant qu'auteurs WordPress dans ThemeForest, nous voulons satisfaire nos clients en leur fournissant des corrections de bugs occasionnelles et des améliorations de thème. Mais l’un des principaux problèmes auxquels nous avons été confrontés était de savoir comment avertir nos utilisateurs lorsqu’une mise à jour était disponible au téléchargement.
Dans le passé, nous devions chacun coder notre propre implémentation de notificateur de mise à jour de thème. Bien qu'il existe désormais une case à cocher pour activer les notifications de mise à jour de projet dans Envato Marketplace, les utilisateurs doivent toujours l'activer pour chaque projet et effectuer les mises à jour de thème manuellement.
Ne serait-il pas préférable que les notifications de mise à jour apparaissent dans le centre d'administration WordPress ? Et la mise à jour peut-elle être effectuée immédiatement dans l'administrateur ? Heureusement, nous avons maintenant le plugin Envato WordPress Toolkit et la bibliothèque de boîtes à outils.
Dans cette série, vous apprendrez comment intégrer ces boîtes à outils dans votre thème.
Dans ce didacticiel, nous implémenterons le plugin et la bibliothèque Envato WordPress Toolkit dans notre thème. Lorsque notre thème est activé, les utilisateurs seront invités à installer et activer le plugin Toolkit.
Une fois le plugin actif, notre thème vérifiera régulièrement les mises à jour et si une mise à jour est trouvée, une notification sera affichée dans l'administrateur dirigeant l'utilisateur vers le plugin pour mettre à jour le thème.
Ce tutoriel est divisé en deux parties :
La boîte à outils Envato WordPress est disponible en deux versions avec des utilisations et des objectifs différents. Pour éviter de confondre les deux, voici une comparaison :
Nous devons d'abord inclure certains fichiers dans le projet. Nous regrouperons le plugin Toolkit avec notre thème et utiliserons l’activation du plugin TGM pour installer et activer le Toolkit.
REMARQUE : Vous pouvez modifier l'emplacement des fichiers ci-dessus en fonction de vos besoins. Vous pouvez également télécharger le code source complet à partir du lien de téléchargement en haut de cet article.
Maintenant que nous avons les fichiers requis, commençons à coder. Nous devons inclure la classe d'activation du plugin TGM dans functions.php et nous connecter à l'action WordPress personnalisée. Ici, nous allons configurer quelques paramètres pour le TGM et définir les plugins à inclure.
/** * 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' );
Ensuite, nous configurons les paramètres requis pour inclure le plug-in Toolkit. Dans la fonction tgmpa_register_toolkit
, ajoutez le code suivant. Si vous avez spécifié un autre dossier de plugin à l'Étape 1, modifiez le chemin dans le paramètre source.
// 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' => '', ), );
Vous pouvez également ajouter d'autres plugins en ajoutant plus de tableaux à la variable $plugins
.
Ensuite, définissez les options TGM. Toujours dans la fonction tgmpa_register_toolkit
, ajoutez le code suivant en dessous de l'étape précédente pour configurer le TGM. Je n’entrerai pas dans les détails de ce que fait chaque paramètre. Si vous souhaitez en savoir plus sur ces paramètres, le site Web d'activation du plugin TGM fait un excellent travail en expliquant chaque détail.
// 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' ) );
volonté $theme_text_domain
变量更改为您正在使用的文本域,或将其保留为 default
.
Enfin, initialisons le TGM avant la fin de la fonction tgmpa_register_toolkit
.
tgmpa( $plugins, $config );
Enregistrez votre functions.php maintenant
Essayez d'activer votre thème. Si vous n'avez pas installé ou activé le plugin Envato WordPress Toolkit, vous devriez voir une notification similaire à celle-ci :
D'après ce que nous savons maintenant, nous pouvons réellement arrêter la série et vos utilisateurs pourront mettre à jour les thèmes depuis l'administrateur. Cependant, les utilisateurs ne verront les mises à jour que dans le panneau d'administration de Toolkit.
La partie 2 de ce didacticiel vous apprendra comment intégrer la bibliothèque Envato WordPress Toolkit et afficher les notifications de l'administrateur lorsque des mises à jour de thème se produisent dans ThemeForest.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!