web-dev-qa-db-fra.com

Inclure le plugin Max Mega Menu dans le thème

Je veux ajouter le plugin Max Mega Menu dans mon thème pour un projet.

Ce que j'ai fait:

  • copier et coller le dossier du plugin dans mon thème
  • inclure le fichier megamenu.php dans mon fichier thème function.php

Nécessaire pour travailler:

  • inclure avec le thème
  • actif lorsque le thème est actif

Alors, comment puis-je inclure ce plugin et l'activer quand mon thème est activé?

1
shamim khan

Si vous incluez un plugin directement dans un thème, il sera rejeté à la fois par le répertoire de thèmes WordPress.org et par ThemeForest.

Vous devez utiliser TGMPA pour inclure des plugins avec des thèmes: http://tgmpluginactivation.com/

Lectures supplémentaires: http://code.tutsplus.com/tutorials/using-the-tgm-plugin-activation-library-in-your-themes--cms-20901

L'utilisation de TGMPA signifie que le plugin reste un plugin, WordPress le charge normalement, et les utilisateurs recevront les mises à jour du plugin au fur et à mesure de leur publication.

2
Tom Hemsley

Vous ne pouvez pas simplement inclure un plugin dans votre thème en l'appelant à partir de votre functions.php. La raison en est que si l'utilisateur a déjà installé le même plug-in, cela entraînera une erreur fatale.

En outre, vous ne devriez pas déplacer des parties du plug-in vers votre thème, car vous ne savez pas comment le plug-in fonctionne en interne. Il se peut qu’il cherche un fichier qui n’est pas là et jette une erreur.

Donc, la bonne façon de faire est d’avoir le plugin complet dans un sous-répertoire de votre thème et de ne l’appeler qu’après avoir vérifié si celui-ci n’a pas déjà été chargé. Cela peut être fait en vérifiant l'existence d'une certaine fonction ou classe que vous savez disponible dans le plugin. Exemple de code:

add_action('after_setup_theme', 'wpse237683_load_plugin');

function wpse237683_load_plugin() {
    if (!class_exists('wpse237683')) {
        include_once (get_template_directory() . 'plugins/wpse237683/wpse237683.php');
        }
    }

Il y a encore divers pièges. Vous pouvez essayer de les résoudre vous-même ou utiliser une bibliothèque PHP telle que TGMPA qui gérera cela pour vous.

2
cjbj