Maison / Travailler sur Internet / Meilleure façon d'autoriser les plugins pour l'application PHP. Incorporer du code PHP dans WordPress via des widgets Plugin php inconnu

Meilleure façon d'autoriser les plugins pour l'application PHP. Incorporer du code PHP dans WordPress via des widgets Plugin php inconnu

7ème édition PHP a vu le jour en 2015. Une nouvelle étape dans le développement de ce langage de programmation a apporté de nombreuses opportunités à tous ceux qui utilisent PHP. Avantages nouvelle version la vitesse doit être mise en évidence. Ainsi, selon les développeurs, la vitesse des scripts sur PHP 7, comparé à Versions précédentes a presque doublé. À cet égard, de nombreux propriétaires de sites sur lesquels des versions plus anciennes sont installées PHP souhaitez passer à un nouveau.

Pourquoi vérifier la compatibilité ?

A noter qu'avant de changer de version dans le panneau de contrôle de votre hébergement PHP vers un site plus récent et plus rapide, vous devez vérifier la compatibilité du site WordPress avec celui-ci, à savoir les thèmes et les plugins. Ce besoin est dû au fait que généralement dans les nouvelles versions logiciel certaines fonctions sont ajoutées et d'autres cessent complètement d'exister. Si un plugin ou un thème utilise des fonctions ou des méthodes qui n'existent pas dans la nouvelle version, alors c'est le bonjour d'une erreur, qui peut perturber le site dans son ensemble.

Comment vérifier la compatibilité PHP 7.0 ?

Plugin de vérification de compatibilité PHP

Le plugin PHP Compatibility Checker permet de scanner l'intégralité du site et d'indiquer lesquels de ses composants (thèmes, plugins) ne sont pas compatibles avec la version sélectionnée PHP. Vous devez d'abord l'installer et l'activer, puis allez dans le panneau d'administration Outils -> Compatibilité PHP.

Comme vous pouvez le voir, le plugin propose des réglages très clairs. Pour commencer la vérification, vous devez sélectionner une version PHP, pour la compatibilité avec laquelle vous souhaitez vérifier le site (bloc version php). Fonction pratique plugin consiste à sélectionner l'état des composants cochés. Deux options sont disponibles au choix : soit vérifier parmi les thèmes et plugins actifs, soit dans ceux inactifs (champ Plugin / Statut du thème). Pour démarrer le test, appuyez sur le bouton Scanner à nouveau le site.

Le résultat du test peut également être téléchargé sur fichier texte en appuyant sur le bouton Télécharger le rapport.

Je poste relativement souvent divers extraits de WordPress qui facilitent beaucoup la vie. Et presque toujours, je me concentre sur la façon de les connecter correctement.

Bien sûr, il est plus facile et plus familier de suivre la méthode traditionnelle et d'insérer bêtement l'extrait de code dans le fichier fonctions.php votre sujet actif. Mais dans 9 cas sur 10, il sera plus approprié et correct de déplacer l'extrait de code vers un plugin séparé. En dernier recours, ajoutez-le à un plugin fonctionnel spécial de votre site. soi-disant. Plugin WordPress spécifique au site, dans lequel toutes les fonctionnalités supplémentaires de votre site seront stockées.

Pourquoi est-il nécessaire

je vais vous expliquer sur exemple simple. Supposons que vous ayez développé un site avec une structure complexe, de nombreux types de données personnalisés, des taxonomies, des filtres, des menus, avec la prise en charge d'un grand nombre de champs personnalisés et de paramètres utilisateur. Toute la personnalisation, comme il sied dans ce cas, vous avez placé dans le fichier fonctions.php. Tout va bien, mais un certain temps passera et vous devrez faire face à la tâche de repenser. Souhaitez-vous changer ou développer nouveau sujet. Alors les problèmes commenceront. Parce que toutes les fonctionnalités du site, intégrées dans vieux sujet, s'éteindra avec.

Comment être

Vous devez comprendre une simple vérité. Le fichier de fonctionnalités du thème ne doit contenir que des fonctionnalités liées à la conception de votre site. Plus précisément, au sujet dont le fichier de fonction est en cours d'édition. Et le tout soi-disant. "Mechanics", la fonctionnalité de travail du site et toutes ses personnalisations doivent être placées dans des plugins. Ou dans un plugin. Ensuite, lorsque vous changerez de thème, il restera intact.

Création d'un plugin de fonctions WordPress personnalisé

En fait, tout se fait très simplement.

  • Créez un dossier dans votre répertoire de plugins WordPress. Par exemple: /wp-content/plugins/mysite-plugin/;
  • Créez un fichier dans ce dossier, en le nommant, par exemple, mon-plugin.php;
  • Collez le code suivant dans ce fichier :
  • Accédez aux paramètres de gestion des plugins et activez votre nouveau plugin.

Le titre, la description et les commentaires de code peuvent être remplacés par les vôtres. Vous pouvez maintenant placer tous les extraits et personnalisations nécessaires dans ce plugin. Sans crainte de perdre la fonctionnalité du site au prochain changement de thème actif.

Vous pouvez vous arrêter là, mais il ne serait pas tout à fait correct pour moi de ne pas mentionner le soi-disant. Plugins MU.

Plugins MU (doit utiliser des plugins)

Les plugins MU sont très utiles dans les cas où la désactivation d'un plugin est inacceptable et peut entraîner erreurs critiques dans le fonctionnement du site. Par exemple, sur les sites clients. Afin d'éviter des actions incorrectes du client dans la console de gestion du site.

Les plugins MU sont des plugins WordPress nécessaires qui sont installés dans un répertoire spécial et qui sont toujours actifs. Les plugins MU ne sont pas affichés dans la liste générale des plugins du site, il y a un onglet séparé pour eux. Ils ne peuvent être désactivés qu'en supprimant directement le fichier du plugin MU du répertoire.

Avantages des plugins MU

  • Les plugins MU n'ont pas besoin d'être activés, ils sont toujours actifs, ils ne peuvent pas être désactivés dans la console de gestion du site ;
  • Le plugin MU est connecté et activé en téléchargeant simplement le fichier du plugin dans le répertoire mu-plugins ;
  • Les plugins MU sont chargés par ordre alphabétique avant le chargement des plugins normaux.

Veuillez noter que les sous-répertoires pour les plugins MU, contrairement aux plugins réguliers, ne sont pas pris en charge. En dernier recours, vous pouvez créer un plugin et y écrire un chargeur simple qui chargera les plugins à partir de répertoires. Comme ça:

Enfin

Comme vous pouvez le voir, il n'y a rien de fondamentalement difficile à utiliser des plugins fonctionnels. Et les avantages de leur utilisation sont évidents. J'ai souvent entendu une telle opinion que les plugins créent une charge incroyable sur le site. De nombreux utilisateurs ont des idées préconçues sur les dangers de l'utilisation de plugins. Ce n'est pas tout à fait vrai. Le mal peut être fait par des plugins de gauche, développés par on ne sait qui et téléchargés depuis on ne sait où. Mauvaise optimisation du plugin, utilisation d'obsolètes Fonctions PHP et WordPress. Les dommages peuvent provenir d'un grand nombre de plugins fonctionnant simultanément. Surtout avec une fonctionnalité en double. Un banal conflit de plugins, des plugins avec le thème est également possible. Et avec une approche compétente et raisonnable, les plugins apporteront des avantages exceptionnels à votre site Web.

Abonnez-vous à mon télégramme et soyez le premier à recevoir de nouveaux matériaux, incl. qui ne sont pas sur le site.

Les plugins sont un moyen d'étendre les fonctionnalités d'une application sans modifier son code source. Les fonctions implémentées par le plugin continuent de fonctionner après l'installation des mises à jour de l'application, lorsque ses fichiers sont écrasés. Le code source du plug-in est organisé dans des fichiers indépendants, qui sont uniquement connectés à l'application.

Localisation

La localisation des plugins est implémentée de la même manière que la localisation des applications (documentation). Placez les fichiers de traduction *.po et *.mo dans le dossier locale et incluez les clés dans le code comme suit :

  • wp("chaîne") en PHP (au lieu de la méthode _w(), qui ne fonctionne qu'avec la localisation de l'application, il faut utiliser la méthode _wp(), qui charge la localisation du plugin),
  • [`chaîne`] dans les modèles Smarty (il n'y a pas de différences avec la localisation d'application ici).

Le nom et la description du plugin (nom et description dans le fichier de configuration) sont traduits en utilisant la localisation par défaut du plugin, vous n'avez donc pas besoin de spécifier "name" => _wp("PLUGIN NAME") - spécifiez simplement "name" =>"NOM DU PLUGIN" .

Utilisation de la localisation dans les méthodes statiques

En cas d'appel de méthodes statiques publiques de classes de plug-in dans l'environnement externe, par exemple, dans le code du thème de conception, la localisation du plug-in n'est pas automatiquement incluse et la fonction _wp() ne renvoie pas la nouvelle ligne comme prévu. Afin d'utiliser la localisation du plugin dans de telles méthodes, il est nécessaire de placer tous les appels à la fonction _wp() dans une construction spéciale mise en évidence en gras dans l'exemple ci-dessous :

La classe appMyPlugin étend waPlugin ( public static function displayData() ( //dans les deux lignes spécifiez l'ID de l'application et votre plugin waLocale::loadByDomain(array("app_id", "plugin_id")); waSystem::pushActivePlugin("plugin_id ", " app_id"); $résultat = _wp("..."); waSystem::popActivePlugin(); retourne $résultat ; ) )

Base de données

Si le plugin utilise ses propres tables dans la base de données, alors les noms de table doivent commencer par un fragment de la forme __ , par exemple : boutique_ebay_ nom de la table .

Connexion plug-in

Pour que le plugin écrit fonctionne, vous devez l'inclure dans le fichier de configuration système de l'application wa-config/apps/ APP_ID/plugins.php en ajoutant la ligne :

"plugin_id" => vrai

Un exemple de ce fichier pour l'application Blog (wa-config/apps/blog/plugins.php) :

true, "tag" => true, "category" => true, "gravatar" => true, "favorite" => true, "troll" => true,);

Dans le même fichier, vous pouvez désactiver les plugins inutiles.

install.php et uninstall.php

Si vous devez effectuer des actions non standard lors de l'installation du plug-in (par exemple, ajouter de nouveaux champs aux tables d'application existantes), la logique de ces actions doit être décrite dans le fichier de configuration lib/config/ install.php. Un exemple d'ajout d'un champ supplémentaire à la table lors de l'installation du plugin :

$model = new waModel(); try ( $model->query("SELECT `custom_field` FROM `shop_product` WHERE 0"); ) catch (waDbException $e) ( $model->exec("ALTER TABLE `shop_product` ADD `custom_field` INT(11) NON SIGNÉ NULL PAR DÉFAUT NULL"); )

Décrivez les actions à effectuer lors de la suppression du plugin de la même manière dans le fichier lib/config/ désinstaller.php .

Créer et supprimer propre Il n'est pas nécessaire de décrire les tables de plugins dans les fichiers install.php et uninstall.php — les tables sont automatiquement créées et supprimées en fonction du contenu d'un autre fichier de configuration : db.php . Cm. " ".

Exemple

La plate-forme de plugins a été introduite dans le framework avec l'application Blog, par conséquent, pour une étude plus approfondie, nous vous recommandons d'installer cette application et de revoir les plugins écrits pour elle (les plugins sont installés via le programme d'installation). Pour le "Blog", des plugins ont été écrits à diverses fins et applications pratiques : pour le frontend, le backend, l'extension des capacités de l'interface utilisateur, le téléchargement de données, etc.

Salutations, amis. Aujourd'hui, nous allons découvrir comment faire fonctionner n'importe quel code PHP dans les widgets, les articles et Sites WordPress. Par défaut, une telle fonction n'est pas disponible dans ce CMS, et le maximum sur lequel un utilisateur peut compter est l'introduction de code HTML.

Pourquoi le code PHP ne fonctionne-t-il pas par défaut ?

Il semblerait que les développeurs n'aient pas récompensé un moteur aussi populaire et pratique avec des fonctionnalités utiles pour l'exécution automatique du code PHP. Au début, j'y ai pensé, mais je suis arrivé à la conclusion qu'une telle politique est menée à partir d'une position de sécurité, car l'utilisation inepte de PHP dans les widgets ou à l'intérieur des enregistrements peut entraîner des conséquences irréparables - quelque chose sera cassé dans la base de données et tout le site grognera.

Par conséquent, travailler avec PHP est à la merci des programmeurs ou des personnes plus ou moins avancées en la matière - tous les scripts sont exécutés directement dans les fichiers.

Pour les sites publics (où il y a plusieurs auteurs), l'exécution de PHP dans le corps de l'article augmente le risque de sabotage délibéré, puisque tout auteur peut obtenir un accès complet au site via la fenêtre d'édition de l'article.

Selon le degré de danger, je diviserais toute cette situation en 3 niveaux :

  1. Il est difficile de tout laisser comme les développeurs l'avaient prévu - il est difficile d'endommager le site en toute sécurité, accidentellement ou intentionnellement.
  2. Autoriser l'exécution de PHP dans les widgets - niveau de gravité moyen, seul l'administrateur du site y a accès.
  3. Utiliser le code partout est dangereux, car toute personne autorisée à éditer des articles et des pages (modérateurs, auteurs) peut gérer le site

A quoi sert PHP dans les Widgets ?

La question est individuelle, puisque tout peut être implémenté en utilisant ce langage de programmation. Personnellement, j'ai été invité à écrire cet article par une commande d'un client dont je suis en train de construire le site Web. Sur celui-ci, il était nécessaire d'afficher dans la barre latérale d'un widget séparé une liste des actualités d'une rubrique - "Actualités". Il n'y a pas une telle option dans les widgets WordPress standard.

La question était entre trouver un plugin avec les capacités appropriées ou utiliser un simple code PHP. Le script pour une telle tâche est vraiment petit et je ne voulais pas charger le site avec un plugin supplémentaire qui ne sera utilisé nulle part ailleurs.

En général, en permettant l'exécution de PHP, on peut résoudre 2 problèmes :

  • Remplacez une partie des plugins du site par des scripts et réduisez ainsi la charge d'hébergement ;
  • Implémenter des fonctions pour lesquelles les plugins n'existent pas encore.

Dans un premier temps, je parlerai des widgets, puis, dans un bloc séparé, de l'affichage du code dans le contenu.

Plugins pour PHP dans les widgets

L'avantage des plugins : Lors du changement de thème WordPress, le travail des fonctions ajoutées au template n'est pas perturbé, tout continue de fonctionner sans nécessiter l'intervention du webmaster. Les crochets ajoutés au modèle lors du changement de thème devront être transférés manuellement vers le nouveau.

Dans mon exemple ci-dessus, je fais un site pour un client et s'il veut changer le design par lui-même, les paramètres qui sont faits via les fichiers functions.php et autres vont disparaître, donc je le rends aussi simple que possible pour à lui de gérer le site à base de plugins (surtout dans sa niche le trafic est faible et la charge ne sera pas énorme).

Widget de code PHP

J'utilise ce plugin dans mon travail depuis longtemps, il ajoute un widget à la liste des widgets disponibles, similaire à un texte normal, uniquement capable de traiter PHP en plus du texte et du HTML.

PHP Code Widget est présent dans le référentiel officiel de WordPress, facile à trouver par son nom. Comment installer de tels plugins.

Aucun paramètre n'est requis, le widget apparaîtra dans la liste immédiatement après l'installation et l'activation du plugin. Faites glisser "Code PHP" dans la barre latérale et ajoutez-y n'importe quel script.

PHP dans le widget WordPress sans plugin

Dans ce cas, nous avons besoin d'un hook qui remplacera la fonction standard qui fournit au widget de texte WordPress une fonction permettant de traiter PHP.

Ce crochet est ajouté au fichier functions.php du thème courant (tout à la fin avant l'accolade fermante ?>). Après cela, les nouvelles options de widget, comme dans le cas du plugin, n'apparaissent pas, les codes PHP commencent à fonctionner en texte standard.

Code terminé :

Add_filter("widget_text"," text_html_php_widget ",100); function text_html_php_widget($text) ( if(strpos($text,"".$text); $text = ob_get_contents(); ob_end_clean(); ) return $text; )

La première ligne est un filtre qui remplace la fonction de widget de texte standard par une nouvelle, text_html_php_widget, à chaque appel, puis la description de la fonction la plus récente suit.

Pourquoi le code PHP dans les articles et publications WordPress

Dans les messages, le code PHP exécutable est beaucoup moins souvent requis que dans les widgets, donc dans la première partie de l'article, j'ai considéré la barre latérale séparément afin que vous puissiez éviter d'inclure inutilement des fonctions potentiellement dangereuses.

Mais même dans les publications, il est nécessaire d'utiliser des scripts. L'exemple le plus courant est la sortie d'un sitemap sans plugin. Certes, vous pouvez utiliser une autre technique pour la carte - créez un modèle de page spécial (il s'agit d'un sujet distinct).

Une fois, j'avais besoin d'une sortie PHP dans le but suivant :

J'ai créé un site vidéo. Les épisodes de la série étaient affichés dans des playlists par saison et il fallait afficher une liste des épisodes sous chaque playlist de la saison avec un lien vers votre page. Cela ressemble à un plan du site, seulement plus compliqué - la conclusion devait être faite par des listes de rubriques individuelles. Il était possible d'écrire manuellement chaque lien avec du code HTML, mais il existe plusieurs centaines de séries et la procédure est fastidieuse. De plus, lorsqu'une nouvelle série apparaît, un lien vers celle-ci devrait être ajouté manuellement - peu pratique. J'ai donc décidé d'utiliser les fonctions PHP pour l'implémentation.

Plugin pour exécuter PHP dans le contenu Exec-PHP

Malgré le fait que ce plugin n'a pas été mis à jour depuis 7 ans, il fait un excellent travail. Et je l'ai choisi pour une raison - il n'utilise aucun shortcode, comme les concurrents, mais vous permet d'insérer du code pur dans les publications WordPress, en commençant par .

Le plug-in Exec-PHP se trouve dans le référentiel et s'installe via le menu du panneau d'administration du moteur.

Parmi les paramètres, il n'y en a qu'un - autorisation / interdiction d'exécuter du code dans un widget texte, il n'y a aucune possibilité de désactiver le travail dans les publications et sur les pages, si vous devez le supprimer - désactivez le plugin.

Pour insérer du code PHP dans un article, celui-ci doit être passé en mode HTML (onglet "Texte"). Le mode visuel risque de gâcher le code.

Exécuter du code PHP dans des articles WordPress sans plugin

Par analogie avec les widgets, on peut remplacer le plugin par une fonction spéciale qui permet l'exécution Script PHP Dans le contenu. Malheureusement, je n'ai pas trouvé d'option dans laquelle le code fonctionnerait automatiquement, comme dans le cas du plugin, en réagissant aux balises. Code court requis. Ma connaissance de PHP n'était pas suffisante pour l'auto-écriture fonction désirée, pour sim je l'apporte tel quel. Travailler avec un shortcode présente un inconvénient important qui complique le travail, dont je parlerai ci-dessous.

Comment travailler avec la fonction ci-dessous

  1. Collez-le dans le fichier functions.php du thème ;
  2. Au bon endroit dans l'article, nous insérons une construction - code exécutable sans

Fonction:

/* Démarrer php dans les articles et pages WordPress : code */ function start_php($matches)( eval("ob_start();".$matches."$inline_execute_output = ob_get_contents();ob_end_clean();"); return $inline_execute_output ; ) fonction inline_php($content)( $content = preg_replace_callback("/\((.|\n)*?)\[\/startphp\]/", "start_php", $content); $content = preg_replace( "/\((.|\n)*?)\[\/startphp\]/", "$1", $content); return $content; ) add_filter("the_content", "inline_php");

Défaut

S'il y a une insertion HTML ou du texte dans le code PHP inséré, cela ne fonctionnera pas. Tout texte ou balise devra être inséré à l'aide de la commande echo, ce qui n'est pas toujours pratique. Autrement dit, le code doit être purement PHP-shny 100 format correct.

Droite

Echo "Cela fonctionnera" ;

Faux

Echo "Cette ligne est correcte" ; Cela ne fonctionnera pas

Dans le plugin Exec-PHP, il n'y a pas un tel problème - le texte et le HTML seront exécutés, mais tous les éléments du code PHP doivent être encadrés dans les balises appropriées.

Pour de nombreux webmasters, le thème décrit dans cet article ouvre des possibilités infinies de créativité - vous pouvez implémenter ce que vous ne pouviez pas faire auparavant, ainsi que vous débarrasser de nombreux plugins, en les remplaçant par différents filtres, fonctions et crochets.

Dans ce guide, nous verrons en détail comment créer Plug-in WordPress avec sa propre page d'administration. Une caractéristique de tout plugin est la séparation de son code du code principal de WordPress. Si quelque chose arrive au plugin, le reste du site fonctionnera.

  • Éditeur de texte

Pour suivre les étapes de ce guide, vous aurez besoin éditeur de texte, comme Notepad++ ou l'IDE NetBeans. Vous avez également besoin d'un accès FTP dans votre compte sur l'hébergement et .

Ce guide de plugin WordPress est écrit pour ceux qui ont déjà . En nous guidant, nous créerons nouvelle fonctionnalité, appel fonctionnalités existantes WordPress les utilise comme paramètres.

Qu'est-ce qu'un plugin WordPress ?

Plug-in WordPress est un code autonome qui améliore et étend les fonctionnalités de WordPress. En utilisant n'importe quelle combinaison de PHP, HTML, CSS, JavaScript/jQuery ou une gamme d'autres langages de programmation, un plugin WordPress peut ajouter de nouvelles fonctionnalités à n'importe quelle partie de votre site, y compris la console d'administration. Vous pouvez modifier le comportement par défaut de WordPress ou supprimer entièrement les comportements inutiles. Les plugins facilitent la personnalisation de WordPress pour vous et vos besoins.

Puisqu'un plugin WordPress est un code séparé, il ne recoupe directement aucune partie du code principal de WordPress. Le plugin peut être copié ou installé sur n'importe quel installer WordPress. Alternative (et fortement déconseillé) façon de faire des changements dans WordPress est d'écrire une nouvelle fonction dans fichier wordpress fonctions.php, qui se trouve dans le répertoire /wp-inclut/ ou vers un fichier fonctions.php, qui fait partie de votre thème. Cela peut entraîner un certain nombre de problèmes possibles.

WordPress et ses thèmes sont mis à jour régulièrement. Et pendant que vous utilisez un thème enfant WordPress, la prochaine mise à jour écrasera le fichier fonctions.php, et celui que vous avez ajouté nouveau code seront supprimés et devront être ajoutés encore et encore. Un autre moment gênant peut survenir si vous écrivez beaucoup de fonctions et que l'une d'entre elles a une erreur que vous ne pouvez en aucun cas retrouver, vous devrez peut-être remplacer le fichier actuel par celui d'origine, mais dans ce cas, vous devez sacrifier toutes les autres fonctions. Cela entraînera un grand nombre de Erreurs PHP sur le site, car les appels à des fonctions déjà supprimées seront toujours effectués à partir d'autres endroits.

Les plugins ne sont jamais automatiquement écrasés ou supprimés lors de la mise à jour de WordPress. S'il y a des bogues dans le code de votre plugin WordPress, vous pouvez simplement le désactiver dans la console d'administration pendant que le bogue est corrigé. Dans le cas où votre plugin présente un bug sérieux, WordPress peut parfois le désactiver automatiquement de lui-même afin de maintenir le fonctionnement de l'ensemble du site.

Qu'est-ce qu'un crochet ?

Les plugins WordPress interagissent avec le code principal via ce que l'on appelle crochets (crochets, de l'anglais. crochet - crochet). Pour eux, comme pour les crochets, vous pouvez "accrocher" la performance de toutes les fonctions qui nous intéressent. Il existe deux types de hooks dans WordPress :

  1. Crochets d'action ou crochets d'événement (ajouter/supprimer une fonction personnalisée à un événement).
  2. Crochets de filtre ou hooks de filtre (pour modifier les données traitées par les fonctions).

Événements et crochets d'événement

Visiter n'importe quelle page d'un site WordPress est un appel à de nombreuses fonctions PHP (appelées événements - Actions). Les fonctions sont liées à crochets d'événement. Le mécanisme de crochet d'événement est fourni par WordPress. Tu peux ajouter leurs fonctions à n'importe quel événement de la liste des événements utilisant le mécanisme de crochet et ils seront lancés lorsque cet événement sera déclenché. tu peux aussi supprimer fonctions préexistantes à partir de n'importe quelle liste de crochets d'événement. Les crochets d'événement sont liés à l'exécution d'un événement particulier. Par exemple, avant de fermer la balise sur n'importe quelle page, l'événement hook est appelé wp_head() et un certain nombre de fonctions liées à ce crochet sont lancées wp_head().

Ajout de fonctions à un hook d'événement à l'aide de add_action()

À ajouter fonction sur n'importe quel hook d'événement, votre plugin WordPress doit appeler Fonction WordPress intitulé add_action() avec au moins deux paramètres.

// Crochet d'événement "init", appelé après que WordPress ait fini de charger le code principal add_action("init", "add_Cookie"); // Définir le cookie avec heure actuelle fonction jour add_Cookie() ( setcookie("last_visit_time", date("r"), time()+60*60*24*30, "/"); )

  • crochet-événements(crochet d'action), auquel nous allons lier notre fonction.
  • Le deuxième paramètre obligatoire est le nom les fonctions que nous allons courir.
  • une priorité (priorité) la fonction que vous êtes sur le point d'exécuter. Vous pouvez lier autant de fonctions que vous le souhaitez à un seul hook d'événement et y accéder dans n'importe quel ordre. La priorité de lancement par défaut est 10, votre fonction s'exécutera immédiatement après les fonctions intégrées de WordPress. La fonction de priorité 11 s'exécutera ensuite, et ainsi de suite.
  • nombre d'arguments, signifie combien de paramètres votre fonction personnalisée peut accepter. Par défaut, le nombre de paramètres est 1.

Exemple de code de plugin pour afficher le texte après la section de pied de page sur chaque page

Ce plugin WordPress intercepte l'événement Hook wp_footer(), qui est appelée juste avant la balise fermante sur chaque page et ajoute une nouvelle fonctionnalité appelée mfp_Add_Text(). Étant donné que le plugin WordPress n'est pas lié à un thème, la fonctionnalité fonctionnera même si vous changez le thème en un autre. Vous pouvez enregistrer cet exemple pour vous-même. Fichier PHP, téléchargez-le dans le répertoire contenu wp/plugins/ et activez-la dans la console d'administration pour voir les modifications.

"; } ?>

Voici le résultat :

Note: PHP charge le contenu de l'intégralité du script en une seule fois avant de l'exécuter, ce qui signifie que vous pouvez appeler add_action() avant la définition de votre fonction : call add_action() avec vos fonctions au début du fichier dans l'ordre où elles seront chargées, puis définissez vos fonctions dans cet ordre ci-dessous. Cette structuration du code rendra le fichier plus lisible.

Suppression de fonctions des crochets d'événement à l'aide de remove_action()

Pour suppression fonction associée au crochet d'événement, vous devez utiliser remove_action(). L'exemple ci-dessous vous aidera à comprendre le fonctionnement de l'ajout et de la suppression de fonctions vers/d'un hook d'événement.

// Crochet pour l'événement "init", qui est appelé après la fin du chargement du noyau WordPress et de la fonction "remove_My_Meta_Tags" add_action("init", "remove_My_Meta_Tags"); // Supprime la fonction "add_My_Meta_Tags" de la fonction de hook d'événement wp_head remove_My_Meta_Tags() ( remove_action("wp_head", "add_My_Meta_Tags"); )

est en cours d'exécution remove_action() dans au moins deux paramètres.

  • Le premier paramètre obligatoire est le titre. crochet-événements(crochet d'action), auquel la fonction était rattachée
  • Le deuxième paramètre obligatoire est le nom les fonctions vous voulez supprimer
  • Le troisième paramètre (facultatif) est la priorité de la fonction à supprimer. Ce paramètre doit correspondre à la priorité définie lors de l'ajout de l'événement au hook d'événement. Si elle n'a pas été définie, n'activez pas cette option.

Exemple: Supposons que vous souhaitiez que le texte ajouté dans le pied de page de l'exemple précédent ne s'affiche pas le lundi. Une façon d'implémenter ceci est d'utiliser la fonction date de PHP pour obtenir le jour de la semaine en passant une instruction conditionnelle si donc… et vérifier si le jour actuel est lundi, puis appeler remove_action(), si c'est lundi. Nous appelons la fonction de vérification et de suppression par jour de la semaine en utilisant add_action(), associé à un événement qui s'est produit plus tôt (par exemple, wp_head) que celui auquel notre action de texte de pied de page principale est attachée ( wp_footer). Si nous choisissons un événement qui se produit après wp_footer, il n'y aura pas de suppression car la page sera déjà générée.

Après avoir chargé le pied de page du site, mon texte est ajouté !

"; ) // Définition de la fonction "mfp_Remove_Text()" supprimant notre fonction précédente de l'événement "wp_footer" function mfp_Remove_Text() ( if (date("l") === "Monday") ( // Cibler le "wp_footer " action , supprimez la fonction "mfp_Add_Text" remove_action("wp_footer", "mfp_Add_Text"); ) ) ?>

Filtres et crochets de filtre

Fonctions de filtrage vous permettent de modifier les données renvoyées par d'autres fonctions et doivent d'abord être interceptées à l'aide crochets de filtre. Les crochets de filtre sont quelque peu différents des crochets d'événement. Cependant, ils fonctionnent comme des crochets d'événement - ils peuvent être appelés à différents moments du script et de manière contextuelle. Liste complète Les hooks de filtre et le contexte d'appel peuvent être trouvés sur la page WordPress Plugin API/Filter Reference.

Ajout de filtres à l'aide de add_filter()

À ajouter toute fonction au hook de filtre, votre plugin doit appeler une fonction WordPress appelée add_filter(), avec au moins deux paramètres.

// Intercepter le hook de filtre "the_content" (le contenu de n'importe quel message), exécuter la fonction "mfp_Fix_Text_Spacing" add_filter("the_content", "mfp_Fix_Text_Spacing"); // Correction automatique de la fonction double espace mfp_Fix_Text_Spacing($the_Post) ( $the_New_Post = str_replace(" ", " ", $the_Post); return $the_New_Post; )

  • Le premier paramètre obligatoire est le nom crochet de filtre(crochet de filtre), sur lequel on veut accrocher la fonction.
  • Le deuxième paramètre est le nom les fonctions de filtrage (fonction filtre), nous voulons courir.
  • Le troisième paramètre (optionnel) est une priorité (priorité) la fonction que vous souhaitez exécuter. Vous pouvez ajouter autant de filtres de fonctions différents que vous le souhaitez à un crochet de filtre. La priorité par défaut est 10, ce qui place votre file d'attente de fonctions personnalisées après toute fonction intégrée. La fonction de priorité 11 s'exécutera ensuite, et ainsi de suite.
  • Le quatrième paramètre (optionnel) est nombre d'arguments, ce qui signifie combien de paramètres votre fonction personnalisée peut accepter. Par défaut, le nombre de paramètres est 1.

Exemple. Plugin WordPress pour modifier l'extrait/l'extrait de publication

WordPress a une fonction qui extrait un extrait (citation) d'un article, elle s'appelle obtenir_l'extrait(), et est également un crochet de filtre. La fonction qui affiche l'extrait appelle obtenir_l'extrait(), pour l'obtenir, c'est ici que le filtre est appliqué et que l'extrait est modifié avant d'être affiché. Ce plugin WordPress définit une fonction de filtre qui prend un morceau de texte comme paramètre d'entrée, ajoute du texte au début de celui-ci et renvoie une nouvelle valeur à chaque fois qu'il est appelé. obtenir_l'extrait(). Depuis le retour de la fonction obtenir_l'extrait() value est le morceau de texte réel, il est automatiquement entré en tant que paramètre de la fonction $old_Extract, lorsqu'il est appelé en utilisant add_filter(). La fonction que vous définissez doit renvoyer une nouvelle valeur.

Extrait:" . $ancien_extrait; return $nouvel_extrait; ) ?>

Résultat final:


Suppression de filtres à l'aide de remove_filter()

Pour supprimer un filtre, il vous suffit d'appeler la fonction remove_filter(). Par exemple, ajoutons à nouveau une condition simple et supprimons le texte si aujourd'hui est jeudi.

// Filtre de hook get_the_excerpt, lance la fonction mfp_Add_Text_To_Excerpt add_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt"); // Si aujourd'hui est jeudi, supprimez le filtre the_excerpt() if (date("l") === "Thursday") ( remove_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt"); ) // Prenez un extrait, ajoutez du texte et renvoie une nouvelle fonction d'extrait mfp_Add_Text_To_Excerpt($old_Excerpt) ( $new_Excerpt = " Extrait:" . $ancien_extrait; return $nouvel_extrait; )

Maintenant que nous avons une compréhension de base des crochets de filtre et des événements, créons un plugin WordPress simple qui ajoute un nouveau lien et une nouvelle page à la console d'administration.

Étape 1 - Enregistrement du plugin

La première étape de la création d'un plugin WordPress consiste à créer un répertoire pour contenir tous les fichiers. Tous les plugins sont stockés dans le répertoire : / contenu wp/plugins/. Le répertoire que vous créez doit avoir un nom unique et compréhensible qui ne chevauche pas d'autres plugins. Connectez-vous à votre compte d'hébergement via FTP. Dans le répertoire principal de WordPress, accédez à wp-contenu puis dans plugins. A l'intérieur d'un répertoire plugins créer un nouveau répertoire nommé mon-premier-plugin.


Les fichiers séparés avec le code du plugin sont mieux divisés thématiquement en sous-répertoires à l'intérieur du répertoire principal du plugin au lieu de tout stocker dans un répertoire, cela évitera la confusion et sera une bonne séparation sémantique des fichiers source du plugin. En particulier, la séparation des fichiers par sens sera très visible lorsque votre plugin grandit et devient plus complexe. Si votre plugin utilise des styles CSS personnalisés, créez un répertoire CSS et enregistrez-y tous les fichiers CSS. Si votre plugin WordPress utilise JavaScript, créez un répertoire Javascript.

Étape 2 - Création du premier fichier

Le premier fichier de votre plugin est très important. Il contient toutes les informations dont WordPress a besoin pour afficher votre plugin dans la liste des plugins actuellement actifs.

Dans votre répertoire mon-premier-plugin créez un nouveau fichier PHP et nommez-le mon-premier-plugin.php. Il est recommandé de nommer le fichier principal du plugin de la même manière que le répertoire. Ajouter une balise PHP d'ouverture en première ligne. Vous n'avez pas besoin d'ajouter une balise de fermeture à la fin du fichier (lisez la note sur la page de manuel PHP pour voir pourquoi). Ce fichier contiendra principalement des "commentaires d'en-tête" ou des commentaires d'en-tête avec des informations qui seront lues et affichées par WordPress. Les commentaires d'en-tête sont un commentaire PHP multi-lignes, chaque ligne définit des informations spéciales, en commençant par des caractères spéciaux, afin que vous puissiez déterminer à quoi cette ligne fait référence. Une telle structure ne devrait être présente que dans le premier fichier et son pas besoin répéter chez les autres.

La première ligne d'un commentaire dans un fichier mon-premier-plugin.php vous devez ajouter le nom du plugin. Commencez un commentaire PHP multi-lignes en l'ouvrant avec des caractères /* sur la deuxième ligne du fichier, juste après la balise d'ouverture PHP. Sur la troisième ligne, écrivez Nom du plugin : Mon premier plugin. Dans les deux lignes distinctes suivantes, vous pouvez spécifier la description du plugin et le nom de l'auteur, puis, à partir de la ligne suivante, fermez le bloc de commentaire avec les symboles */ . Votre fichier ressemble maintenant à ceci :

Le nom de l'auteur.

Étape 3 - Écrire des fonctions de plugin

Comme mentionné ci-dessus, il est recommandé de séparer le code du plugin dans les fichiers et répertoires appropriés. Étant donné que la fonction principale du premier fichier est de contenir des informations sur le plugin, nous allons placer le plugin WordPress lui-même dans d'autres fichiers et répertoires et utiliser la fonction PHP 'include' pour y accéder. Tous les fichiers stockés dans des sous-répertoires sont appelés directement à partir de notre code et uniquement à partir de notre code, de sorte que le nom du sous-répertoire n'a pas besoin de préfixe. Cependant, il est fortement recommandé d'utiliser un préfixe unique pour vos fichiers, fonctions et variables afin d'éviter les conflits avec d'autres plugins. Pour cette raison, nous utiliserons le préfixe mfp, abréviation de "Mon premier plugin".

Dans le répertoire principal de votre plugin, créez un nouveau sous-répertoire appelé comprend. Tout fichier "inclus" dans un autre fichier ira dans ce sous-répertoire. Créer un nouveau fichier PHP dans un sous-répertoire comprend et enregistrez-le sous fonctions-mfp.php Ouverture de la balise en première ligne. Ce nouveau fichier stockera les fonctions de votre plugin.

Revenons maintenant à mon-premier-plugin.php dans le répertoire principal du plugin. Nous devons inclure un fichier fonctions-mfp.php afin d'utiliser les nouvelles fonctionnalités. Comme il s'agit du fichier principal du plugin, la connexion fonctions-mfp.php ici rendra les fonctions disponibles dans n'importe quel autre fichier de votre plugin. Utiliser Demandez une fois pour inclure une fois un fichier avec des fonctions et être sûr que le plugin ne fonctionne que si les fonctions sont disponibles. Le moyen le plus simple d'inclure des fichiers de votre répertoire de plugins est d'utiliser la fonction WordPress plugin_dir_path(__FILE__), qui donne le chemin complet vers le répertoire où est stocké notre plugin WordPress, puis utilisez . (point) à compléter par le nom du sous-répertoire que nous avons créé précédemment ( comprend), puis le nom du fichier que nous avons créé ( fonctions-mfp.php).

Édition mon-premier-plugin.php comme indiqué ci-dessous, puis enregistrez et chargez à nouveau, en écrasant la version précédente.

Retour à fonctions-mfp.php dans un sous-répertoire comprend.

C'est une bonne idée de combiner plusieurs fonctions ensemble et d'écrire un commentaire sur plusieurs lignes au-dessus de chaque groupe décrivant le groupe, puis un court commentaire d'une ligne avant chacune des fonctions le décrivant. De cette façon, vous n'avez pas à lire tout le code à la recherche de la fonction et à reconnaître ce qu'elle fait. Appelons la fonction mfp_Add_My_Admin_Link(). Il ajoutera un nouveau lien supérieur dans la console d'administration au menu de navigation.

Pour résumer, nous écrivons une nouvelle fonction en suivant ces étapes :

  • Rédiger des commentaires décrivant la fonction
  • On appelle la fonction
  • Écrire une fonction

DANS fonctions-mfp.php nous écrivons ce qui suit :

Dans notre fonction, nous devons utiliser la fonction WordPress intégrée add_menu_page() pour définir le nom du menu, le titre et qui peut le voir. Nous disons ensuite ce qu'il faut afficher lorsque nous naviguons vers la page. Vous pouvez également ajouter une icône au lien dans le menu et définir sa position dans le menu de navigation du panneau d'administration - les deux à volonté, donc dans notre guide, nous ne nous arrêterons pas là. Une icône par défaut s'affichera à côté du lien vers votre page. Notre lien apparaîtra en bas du menu de navigation de la console d'administration. Toutes ces informations sont renseignées en paramètres dans add_menu_page().

Quatre paramètres requis add_menu_page()- chacun sur une nouvelle ligne pour une meilleure visibilité :

  1. Le nom de la page que vous verrez après avoir cliqué sur le lien (affiché dans un onglet du navigateur).
  2. Le texte affiché dans le lien du menu (affiché dans la liste de navigation de la console d'administration), cela peut être le nom de votre plugin.
  3. Exigences de capacité de l'utilisateur pour voir le menu, dans cet exemple, seuls les utilisateurs disposant de la capacité "manage_options" peuvent accéder à la page (ne vous inquiétez pas pour l'instant).
  4. Quel fichier utiliser lors de l'ouverture de la page (nous le créerons à l'étape suivante), qui sera stocké dans un sous-répertoire comprend et être appelé mfp-first-acp-page.php. L'URL saisie ici est connue sous le nom de "slug".

Avant de continuer, il est important de savoir qu'il existe une autre façon d'utiliser cette fonctionnalité. Le quatrième paramètre peut simplement être une chaîne de texte qui apparaît dans l'url après ' wp-admin/admin.php?page='. Si vous entrez 'my-plugin-page' l'URL deviendra 'wp-admin/admin.php?page=ma-page-plugin'. Le quatrième paramètre doit alors être le nom d'une fonction qui affiche quelque chose. Vous pouvez écrire une fonction qui n'affiche que "Bienvenue à la page 1", par exemple. Il est beaucoup plus facile de créer un fichier PHP qui contiendra votre page.

Édition fonctions-mfp.php supprimer // Mon code va ici, le remplacer par add_menu_page() et passez les paramètres comme indiqué ci-dessous :

Pour exécuter cette fonction, nous devons utiliser une fonction WordPress appelée add_action() avec deux paramètres, comme décrit dans la section "Ajout de fonctions à un crochet d'événement" de ce guide. Vous voudrez peut-être relire cette section avant de continuer.

  • Le premier paramètre est crochet d'action, que vous souhaitez capturer. Dans notre cas, le hook d'événement est menu_admin- cela signifie que notre fonction est chargée lorsque le menu Admin commence à être généré.
  • Le deuxième paramètre est simplement le nom de la fonction à exécuter. La fonction que nous avons écrite s'appelle mfp_Add_My_Admin_Link. Notez que les parenthèses ne sont pas écrites ici. N'oubliez pas que PHP charge l'intégralité du script avant son exécution, ce qui vous permet d'utiliser add_action() avant de définir la fonction spécifiée dans le paramètre 2.

Notre fichier final ressemble à ceci :

Télécharger le fichier fonctions-mfp.php cataloguer comprend et écraser l'ancien.

Étape 4 - Création d'une nouvelle page d'administration

Vous pouvez maintenant créer une page qui s'affichera lorsque vous cliquerez sur un lien dans votre console d'administration. Retour au sous-répertoire comprend et créez un nouveau fichier PHP appelé mfp-first-acp-page.php. La balise PHP d'ouverture n'est pas requise dans ce fichier car nous n'utiliserons que du HTML. Écrivez le code HTML comme indiqué ci-dessous et téléchargez le fichier.

Bonjour!

Ceci est la première page du plugin :)

Lors de la création de pages d'administration, WordPress recommande d'envelopper votre HTML dans des balises div et de lui donner le nom de classe "wrap" comme indiqué ci-dessus. Cela garantit que tout votre contenu apparaît au bon endroit et ressemble aux autres pages d'administration. Si vous ne suivez pas cette recommandation, la page risque de ne pas être très attrayante.

Revenez à la liste des plugins WordPress dans la console d'administration et activez-la. Une fois la page chargée, regardez le menu de navigation du panneau d'administration. Ici, vous verrez un nouveau lien nommé "Mon premier plugin". Cliquez dessus et vous verrez votre page d'administration native !

Conclusion

Félicitations, vous venez de créer votre premier plugin WordPress, d'ajouter un nouveau lien vers le menu d'administration et d'afficher une nouvelle page dans la console d'administration ! Il semble que ce ne soit pas tellement, mais ce sont les premiers pas confiants. Maintenant, sur la base des connaissances acquises, vous pouvez modifier les fonctionnalités de WordPress selon vos besoins. Plus de connaissances sur WordPress