Maison > Tutoriel CMS > WordPresse > Le plugin WordPress Plugin Part 3: Les dernières étapes

Le plugin WordPress Plugin Part 3: Les dernières étapes

Christopher Nolan
Libérer: 2025-02-16 11:53:09
original
223 Les gens l'ont consulté

Le plugin WordPress Plugin Part 3: Les dernières étapes

Les plats clés

  • La troisième partie de la série de buiscenles de plugin WordPress se concentre sur la mise en œuvre des fonctionnalités de la face du public du plugin, qui comprend la récupération des préférences des utilisateurs et l'affichage d'un avis en conséquence sur sa vue unique.
  • Le guide explique comment préparer le thème pour les tests, comment s'accrocher au filtre_content, comment modifier le contenu conditionnellement, et comment calculer la différence des jours entre l'heure actuelle et le dernier heure modifiée.
  • Styling Le texte du préavis est également discuté, l'auteur fournissant un guide de style simple pour correspondre à la conception globale du thème. L'auteur suggère également des améliorations potentielles, telles que le texte dynamique pour différents contextes et un préavis licenciable.
  • L'auteur conclut en mettant en évidence les avantages de la buissier debout du plugin WordPress, notant sa structure claire, l'adhésion aux meilleures pratiques et l'aspect économe en temps d'avoir un point de départ solide pour le développement du plugin.

Dans la deuxième partie de cette série, nous avons préparé des fonctionnalités simples d'administration pour notre plugin. Nous avons fourni aux utilisateurs une page d'options où ils peuvent modifier le plugin en fonction de leurs préférences.

Si vous avez manqué les parties 1 et 2, veuillez les trouver ci-dessous:

  • Le plugin WordPress Plugin Part 1: accélérer le développement à l'aide de la baillire de plugin WordPress
  • Le plugin wordpress Pileplate Part 2: Développer un plugin WordPress

Pour cet article, nous allons implémenter les fonctionnalités du public du plugin. Cela signifie que nous allons récupérer les préférences de l'utilisateur, déterminer si ce message spécifique est dépassé ou non et afficher l'avis en conséquence sur sa vue unique. Commençons!

Préparer le thème

Nous devons préparer notre thème afin que nous puissions le tester plus tard. Nous allons utiliser le thème Twenty Fifteen qui est expédié par défaut avec WordPress. Plutôt que de remplir les messages manuellement, nous allons utiliser les données de test d'unité de thème fournies par l'équipe de révision du thème pour remplir les messages.

Nous devons télécharger le thème-unit-test-data.xml fourni sur la page Codex ci-dessus et l'importer dans notre installation WordPress. La fonctionnalité d'importation intégrée WordPress peut être trouvée en naviguant vers des outils> Importation de la barre latérale.

Le plugin WordPress Plugin Part 3: Les dernières étapes

Nous serons présentés avec divers choix, et comme nous importons le fichier d'exportation WordPress, nous allons choisir WordPress. Selon l'installation de WordPress, une fenêtre de plugin sera affichée si nous n'avons pas installé le plugin WordPress Importateur. Allez-y simplement et installez d'abord le plugin si vous ne l'avez pas et nous procéderons avec le processus d'importation réel une fois qu'il est fait.

Le plugin WordPress Plugin Part 3: Les dernières étapes

Il s'agit de la page d'importation WordPress par défaut, nous devrons donc choisir le thème-unité-test-data.xml téléchargé précédemment et cliquez sur le bouton "Télécharger le fichier et l'importation".

Le plugin WordPress Plugin Part 3: Les dernières étapes

Un deuxième écran sera alors présenté. Ne vous inquiétez pas beaucoup de la section «Assign les auteurs» car nous pouvons le laisser par défaut. Dans la section «Importer les pièces jointes», assurez-vous de cocher la case à cocher «Télécharger et importer des pièces jointes» afin que toutes les pièces jointes externes soient téléchargées et importées dans la bibliothèque de médias.

Appuyez sur le bouton «Soumettre» et attendez que le processus d'importation se soit effectué avec succès.

Maintenant, nous sommes prêts à écrire le code qui affiche notre avis.

accrochez-vous au filtre_content

L'utilisation du filtre_content est le moyen idéal pour modifier le contenu des articles affichés à l'utilisateur. Selon le didacticiel précédent, nous allons ajouter le crochet au chargeur de classe de la bailli, la seule différence étant que la méthode Define_public_hooks sera utilisée au lieu de Define_Admin_Hooks.

Ajoutez cette ligne de code dans la méthode:

<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
Copier après la connexion
Copier après la connexion

Cela signifie que nous devrons implémenter une méthode publique THE_CONTENT dans notre classe OUTDATED_NOTICE_PUBLIC. Ouvrez public / classe-ex-éteinte

Modification conditionnelle du contenu

Parce que le filtre THE_CONTENT est utilisé par divers plugins et le noyau interne WordPress, nous devons être prudents pour y insérer notre contenu personnalisé.

Nous devons nous assurer que nous n'inservons le texte de l'avis obsolète que chaque fois qu'un seul article est affiché, et non sur l'index de l'article de blog. Pour ce faire, nous pouvons le filtrer en utilisant la fonction is_main_query. Cette fonction est utile chaque fois que nous avons besoin de déterminer si la requête en cours d'exécution est la requête principale ou secondaire / personnalisée.

Une autre chose que nous devons considérer est que nous allons seulement afficher le texte de préavis pour une seule vue de la publication de post, donc la validation est_singular ('post') sera parfaite pour le travail.

Il s'agit de la méthode THE_CONTENT mise à jour contenue à l'intérieur de la classe Outdated_notice_Public.

<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>// do something
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>
Copier après la connexion
Copier après la connexion
Calcul de la différence de jours

Avant de commencer, définissons notre position pour que l'avis apparaisse comme «avant» le message, et le seuil de jours à 30.

Tout d'abord, nous devons récupérer les paramètres stockés de notre plugin. La fonction get_option fera le travail, et en toute sécurité, nous allons passer une valeur par défaut en tant que deuxième argument pour get_option.

<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
Copier après la connexion
Copier après la connexion

Pour calculer la différence des jours entre l'heure actuelle et le dernier temps modifié, nous allons instancier deux objets DateTime. Nous pouvons obtenir une mesure précise de la différence de temps en utilisant la méthode Diff intégrée à la classe DateTime. Notez que la classe DateTime n'est disponible que sur php> = 5.3.0.

<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>// do something
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>
Copier après la connexion
Copier après la connexion

$ date_diff est une instance de la classe DateInterval, nous allons donc avoir une gamme de données disponibles en ce qui concerne les différences de temps. Si nous sommes à var_dump la variable $ date_diff, c'est ce que nous devons obtenir, selon le message que vous consultez actuellement.

<span>$position  = get_option( 'outdated_notice_position', 'before' );
</span>	<span>$days      = (int) get_option( 'outdated_notice_day', 0 );</span>
Copier après la connexion

Nous ne sommes intéressés que par la valeur des jours car il sera utilisé comme comparaison avec notre seuil de jour. Comme je l'ai déjà dit, nous allons les comparer afin que nous puissions appliquer la classe spécifique à notre élément div de préavis pour le coiffer différemment entre les messages.

<span>$date_now  = new DateTime( current_time('mysql') );
</span>	<span>$date_old  = new DateTime( get_the_modified_time('Y-m-d H:i:s') );
</span>	<span>$date_diff = $date_old->diff( $date_now );</span>
Copier après la connexion

Ce bloc de comparaison simple est suffisant pour déterminer la classe à utiliser pour notre div. La seule chose qui reste maintenant est de construire réellement le HTML à ajouter au contenu du post.

Pour un meilleur texte prêt à la traduction, nous allons utiliser la fonction _n pour choisir sélectivement le texte approprié à utiliser en fonction du nombre de jours depuis la dernière mise à jour de la publication. Ensuite, nous allons envelopper le texte de l'avis dans son propre div afin que nous puissions le coiffer plus tard. N'hésitez pas à modifier le texte de l'avis à votre propre goût.

<span>object(DateInterval)#286 (8) {
</span>	  <span>["y"]=>
</span>	  <span>int(0)
</span>	  <span>["m"]=>
</span>	  <span>int(0)
</span>	  <span>["d"]=>
</span>	  <span>int(12)
</span>	  <span>["h"]=>
</span>	  <span>int(23)
</span>	  <span>["i"]=>
</span>	  <span>int(17)
</span>	  <span>["s"]=>
</span>	  <span>int(22)
</span>	  <span>["invert"]=>
</span>	  <span>int(0)
</span>	  <span>["days"]=>
</span>	  <span>int(12)
</span>	<span>}</span>
Copier après la connexion

La variable de préavis $ devrait désormais contenir le balisage que nous allons insérer dans notre contenu de publication. La seule chose à faire est de l'ajouter.

<span>if ( $date_diff->days > $days ) {
</span>		<span>$class = 'is-outdated';
</span>	<span>} else {
</span>		<span>$class = 'is-fresh';
</span>	<span>}</span>
Copier après la connexion

En tant que récapitulatif, c'est à quoi la méthode du_content à l'intérieur outdated_notice_public devrait enfin regarder.

<span>// Filter the text
</span>	<span>$notice = sprintf(
</span>				<span>_n(
</span>					<span>'This post was last updated %s day ago.',
</span>					<span>'This post was last updated %s days ago.',
</span>					<span>$date_diff->days,
</span>					<span>'outdated-notice'
</span>				<span>),
</span>				<span>$date_diff->days
</span>			<span>);
</span>
	<span>// Add the class
</span>	<span>$notice = '<div >' . $notice . '</div>';
</span>	<span>$notice = sprintf( $notice, $class );</span>
Copier après la connexion

Essayez de parcourir quelques pages pour voir si notre plugin fonctionne comme prévu. C'est ce que je vois lorsque je parcoure le message "Hello World" sur URL / 2015/05/11 / Hello-World /.

Le plugin WordPress Plugin Part 3: Les dernières étapes

Styler le texte de préavis

Nous allons appliquer un style simple à la div. Pour ce faire, nous n'allons rien changer en ce qui concerne la taille de la police ou la famille qui est déjà utilisée. De plus, nous allons emprunter la palette de couleurs et le style pour le moment.

Ouvrez le fichier de notes-Public.css obsolèce obsolète contenu dans le dossier public / CSS et ajoutez cette règle.

<span>if ( 'after' == $position ) {
</span>		<span>$post_content .= $notice;
</span>	<span>} else {
</span>		<span>$post_content = $notice . $post_content;
</span>	<span>}</span>
Copier après la connexion

Nous avons également besoin de deux styles différents pour représenter la post-fraîcheur, qui est un style pour .is-fresh et un autre pour. Est-il exposé. Cet extrait devrait faire l'affaire, nous donnant une belle palette de couleurs verte pour un message frais et une palette de couleurs rouge pour un message obsolète.

<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>$position  = get_option( 'outdated_notice_position', 'before' );
</span>			<span>$days      = (int) get_option( 'outdated_notice_day', 0 );
</span>			<span>$date_now  = new DateTime( current_time('mysql') );
</span>			<span>$date_old  = new DateTime( get_the_modified_time('Y-m-d H:i:s') );
</span>			<span>$date_diff = $date_old->diff( $date_now );
</span>
			<span>if ( $date_diff->days > $days ) {
</span>				<span>$class = 'is-outdated';
</span>			<span>} else {
</span>				<span>$class = 'is-fresh';
</span>			<span>}
</span>
			<span>// Filter the text
</span>			<span>$notice = sprintf(
</span>						<span>_n(
</span>							<span>'This post was last updated %s day ago.',
</span>							<span>'This post was last updated %s days ago.',
</span>							<span>$date_diff->days,
</span>							<span>'outdated-notice'
</span>						<span>),
</span>						<span>$date_diff->days
</span>					<span>);
</span>
			<span>// Add the class
</span>			<span>$notice = '<div >' . $notice . '</div>';
</span>			<span>$notice = sprintf( $notice, $class );
</span>
			<span>if ( 'after' == $position ) {
</span>				<span>$post_content .= $notice;
</span>			<span>} else {
</span>				<span>$post_content = $notice . $post_content;
</span>			<span>}
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>
Copier après la connexion

Refreint la vue de la publication et voyons comment elle est stylée. Exemples d'un post frais et obsolète:

Le plugin WordPress Plugin Part 3: Les dernières étapes Le plugin WordPress Plugin Part 3: Les dernières étapes

c'est tout! Nous avons maintenant notre plugin entièrement fonctionnel développé en fonction de la bailli-plaque de plugin WordPress.

Améliorations

Il y a diverses choses qui peuvent être améliorées en fonction de ce que nous avons fait jusqu'à présent. Parmi eux se trouvent:

  • Texte dynamique pour différents contextes, où nous pouvons utiliser un texte différent pour l'avis obsolète.
  • Supprimez le script de mise en œuvre du script de note-notice.js car il n'est pas utilisé.
  • Avis licenciable afin qu'il n'interrompt pas l'expérience utilisateur lors de la lecture du message.

Conclusion

La bailLotplate de plugin WordPress offre un point de départ parfait pour développer n'importe quel plugin à partir de zéro. Dans cette dernière partie de la série, nous avons terminé en développant les fonctionnalités de notre plugin. Les modifications bien que assez simples sont effectuées en peu de temps, tout en maintenant le modèle OOP établi par la passerelle elle-même et adhérant aux normes et aux meilleures pratiques.

Une copie complète du code est disponible comme d'habitude chez GitHub sur la branche de la partie-3.

Questions fréquemment posées (FAQ) sur WordPress Plugin Playplate

Quelle est la baillire de plugin WordPress et pourquoi est-elle importante?

La bailler de plugin WordPress est une base standardisée, organisée et orientée objet pour construire des plugins WordPress de haute qualité. Il fournit une structure claire et cohérente facile à comprendre et à travailler avec, en particulier pour les développeurs qui sont nouveaux dans le développement des plugins WordPress. C'est important car il permet d'économiser du temps et des efforts en fournissant un point de départ solide, en réduisant la nécessité d'écrire du code commun à partir de zéro. Il promeut également les meilleures pratiques dans le codage, l'amélioration des performances, la sécurité et la maintenabilité de vos plugins.

Comment puis-je commencer à utiliser le buisaule de plugin WordPress?

Pour commencer à utiliser le boitrage de plugin WordPress, Vous devez d'abord le télécharger à partir de son référentiel GitHub. Une fois téléchargé, vous pouvez renommer le répertoire et les fichiers de la passerelle pour correspondre aux spécificités de votre plugin. Le code de la passe-partout est bien vendu, vous guidant sur où placer votre code personnalisé. N'oubliez pas de mettre à jour les en-têtes de plugin dans le fichier de plugin principal pour refléter les détails de votre plugin.

Puis-je utiliser la plaque bassette du plugin WordPress pour les projets commerciaux?

Oui, la buisaule du plugin WordPress est une ligne ouverte et sous licence sous le GPL, ce qui signifie que vous pouvez l'utiliser pour des projets personnels et commerciaux. Cependant, c'est une bonne pratique de reconnaître la passerelle dans la documentation ou les crédits de votre plugin.

Comment puis-je contribuer au projet de buissier debout WordPress?

La bailler à plugin WordPress est un projet axé sur la communauté, et les contributions sont toujours les bienvenues. Vous pouvez contribuer en signalant des bogues, en suggérant des améliorations ou en soumettant des demandes de traction sur son référentiel GitHub. Avant de contribuer, assurez-vous de lire et de comprendre les directives de contribution du projet.

Quelle est la structure de la plaque de buissier de plugin WordPress?

La plaque de chauffeur du plugin WordPress suit une structure spécifique conçue pour garder votre code organisé organisé et gérable. Il se compose de trois répertoires principaux: «administrateur», «comprend» et «public». Le répertoire «Admin» contient les fichiers CSS, JavaScript et PHP pour le côté spécifique de l'administrateur du plugin. Le répertoire «incluse» est utilisé pour définir la classe de plugin de base et d'autres fonctions partagées. Le répertoire «public» contient les fichiers pour le côté public du plugin.

Comment ajouter une nouvelle fonctionnalité à mon plugin à l'aide du boiseries de plugin WordPress?

Pour ajouter un nouveau fonctionnalité à votre plugin, vous créeriez généralement une nouvelle classe pour cette fonctionnalité dans le répertoire «inclue». Cette classe doit définir tous les crochets que votre fonctionnalité doit exécuter. Ensuite, vous instanciez cette classe dans la classe de plugin principale et l'ajoutez à la fonction «Exécuter». Cette approche modulaire facilite l'ajouter, la suppression ou la modification des fonctionnalités de votre plugin.

Comment gérer les options de plugin avec le buisaule de plugin WordPress?

La baillon de plugin WordPress fournit une classe pour Gestion des options de plugin dans le répertoire «administrateur». Cette classe comprend des fonctions pour l'enregistrement des paramètres, la définition de sections et de champs et de rendre la page des paramètres. Vous pouvez prolonger cette classe pour gérer les options spécifiques de votre plugin.

Comment puis-je internationaliser mon plugin avec le buisaule de plugin WordPress?

Le bobinage du plugin WordPress comprend une classe d'internationalisation dans le 'incluse' annuaire. Cette classe charge le domaine texte de votre plugin, ce qui lui permet de traduire dans d'autres langues. Il vous suffit de remplacer le domaine texte du placement d'espace réservé dans la buissier debout par le domaine de texte de votre plugin.

Comment puis-je enterrer les scripts et les styles avec le bobinage de plugin WordPress?

La boileuse à plugin WordPress fournit une conduite séparée de classes de classes distinctes? pour enterrer les scripts et les styles dans les répertoires «administra» et «public». Ces classes incluent des fonctions pour l'enregistrement et la mise en œuvre de vos scripts et styles, en s'assurant qu'ils sont chargés au bon endroit et au bon moment.

Comment désinstaller mon plugin proprement avec la baillire de plugin WordPress?

La baillon de plugin WordPress comprend un fichier de désinstallation.php qui est exécuté lorsque votre plugin est désinstallé à partir du tableau de bord WordPress. Ce fichier doit contenir n'importe quel code de nettoyage, tel que la suppression des options de plugin ou des tables de base de données. Cela garantit que votre plugin ne laisse aucune trace en retard lorsqu'il est désinstallé.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal