Comment afficher des métadonnées sur un post WordPress

Dans ma dernière série d'articles, nous avons examiné les concepts de la programmation orientée objet du point de vue du débutant. L'objectif de cette série était de prendre ceux qui n'étaient pas familiers avec la programmation orientée objet en PHP et d'explorer les aspects fondamentaux du paradigme dans le contexte de WordPress..

Si vous n'avez pas eu l'occasion de lire la série, vous pouvez lire un bref résumé (avec des liens vers chaque article de la série) dans le dernier article..

Au cours de la série, nous avons notamment créé un plugin afin de démontrer les principes orientés objet ainsi que certaines des fonctionnalités de l'API WordPress.. 

Plus précisément, nous avons créé un plug-in qui nous permettait d'afficher toutes les métadonnées de publication associées à une publication donnée dans le tableau de bord WordPress..

Le plugin est disponible au téléchargement sur GitHub où vous pouvez également parcourir le code source, afficher les commentaires du code, et généralement voir tout ce qui a été fait pour le créer lors de son développement..

Depuis que cet article a été écrit, j'ai reçu un certain nombre de questions, notamment sur la manière de prendre les données affichées dans le tableau de bord, c'est-à-dire les métadonnées de l'article, et de les afficher au début du site Web. site.

Dans cet article, nous allons étudier l'extension du plug-in de manière à pouvoir afficher les données sur une seule page de publication. Nous allons parler de la façon de le faire compte tenu de notre code existant et de la manière de le faire, et nous allons également nous demander pourquoi cela n’est peut-être pas une bonne idée..

Donc, avec cela dit, commençons.

Ramifications de l'extension du plugin

Avant de nous lancer dans la planification de l’extension du plug-in, je pense qu’il serait utile d’avoir une brève discussion sur les raisons pour lesquelles afficher ce type d’informations sur le serveur - bien que possible - ne soit peut-être pas une bonne idée.

C’est-à-dire que je pense que cela montre bien comment, lorsqu’il s’agit de traiter certains types de données, il est important d’examiner les conséquences de ce que nous choisissons de faire lorsque nous construisons des produits pour d’autres et comment nous gérons les données..

En bref, juste parce que nous pouvez faire quelque chose ne veut pas dire que nous devrait fais le.

Regard sur les données

Pensez-y de cette façon: les métadonnées associées à une publication donnée sont stockées dans la base de données - certaines par WordPress, d'autres par thèmes et d'autres par plugins - qui utilisent toutes les informations pour répondre à leurs besoins spécifiques..

Si vous regardez l'image ci-dessus, vous remarquerez que certaines lignes sont identifiées par des clés précédées d'un trait de soulignement. Par exemple ,, nous avons _edit_lock et _edit_last et ensuite quelques valeurs numériques. Ceci est un exemple de données que WordPress utilise pour gérer en interne l’état des publications..

Les autres clés que vous voyez concernent les plug-ins que j'ai installés dans mon installation WordPress locale et sont utilisées pour montrer comment d'autres utilitaires peuvent enregistrer des données dans la table de métadonnées, puis les associer à la publication donnée..

Quel est le problème?

Le problème avec l’affichage de toutes ces informations au début est que vous pourriez montrer trop d’informations à l’utilisateur. 

Dans le cas ci-dessus, rien de particulièrement dangereux ou sensible ne peut contribuer à compromettre l'installation, mais cela ne signifie pas que ce sera toujours le cas. De plus, il y a de grandes chances pour que vous finissiez par afficher des informations liées à un plugin ou à un thème qui n'a jamais voulu que ses informations soient affichées..

En outre, pour la plupart des internautes, voire la plupart d'entre eux, qui consultent un blog, le fait de voir les informations affichées à l'avant du blog ressemblera à du bruit. C'est un jargon technique qui ne veut rien dire. C’est la raison pour laquelle je pense que le meilleur endroit pour le faire est de conserver ces informations reléguées au tableau de bord..

Mais nous allons étendre le plugin?

En bref, oui, mais pas parce que je pense que l’affichage de ce type d’informations à l’utilisateur est une bonne idée, mais parce qu’il existe une application pratique qui consiste à étendre un plugin existant, à tirer parti du code existant et des conséquences négatives de faire tel.

Alors oui, parfois, les meilleures leçons peuvent être tirées de la mise en œuvre d’idées qui peuvent ne pas être bonnes rétrospectivement. 

Mais ça va. C'est comme ça qu'on apprend, juste?

De plus, il y a encore quelques leçons pratiques qui viennent avec apprendre à étendre une base de code existante.

Extension de poste simple Meta Manager

Comme avec tous les tutoriels que je partage, j'essaie de planifier exactement quoi nous faisons ce que nous faisons avant de le faire afin de ne pas coder avec beaucoup de travail approximatif et d'avoir un plan d'action sur la manière de concevoir notre solution.

Donc, avant d’aller plus loin, si vous n’avez pas examiné le Single Post Meta Manager, veuillez le faire maintenant et nous continuerons..

Une fois cela fait, voici ce que nous allons planifier:

  1. Nous allons utiliser le thème par défaut vingt-quatorze comme base de notre exemple.
  2. Nous allons introduire un répertoire public qui sera utilisé pour afficher les informations sur le Publique côté du blog en particulier dans le contexte des messages simples.
  3. Nous définirons des points d'ancrage qui nous permettront d'ajouter des informations au contenu de l'article afin que les métadonnées de l'article puissent être affichées au bas du contenu. Nous allons utiliser pour cela une table rudimentaire qui héritera des styles du thème actuel. Notez qu'en procédant ainsi, vous pouvez avoir des styles vraiment propres et des styles vraiment faibles. Celles-ci seront à mettre en place par vous-même.
  4. Nous tirerons ensuite parti du modèle que nous avons créé dans la version initiale du plug-in pour nous assurer de récupérer les métadonnées de la publication pour la publication donnée afin de l'afficher au début du processus..

Rien de trop compliqué, non? Nous devons juste être précis dans nos démarches. Alors, commençons.

Introduire le répertoire public

En supposant que vous avez déjà vingt-quatre ans activés et que le plug-in est installé, commençons à présenter nos fonctionnalités. La première chose à faire est de 

  • présenter un Publique annuaire
  • ajouter le Single_Post_Meta_Manager_Public classe
  • inclure la classe dans le fichier plugin principal

Après avoir ajouté les fichiers, les opérations ci-dessus peuvent être effectuées à l’aide des lignes de code suivantes. load_dependencies fonctionner dans includes / single-post-meta-manager.php.

fonction privée load_dependencies () require_once plugin_dir_path (dirname (__FILE__)). 'admin / class-single-post-meta-manager-admin.php'; require_once plugin_dir_path (dirname (__FILE__)). 'public / class-single-post-meta-manager-public.php'; require_once plugin_dir_path (__FILE__). 'class-single-post-meta-manager-loader.php'; $ this-> loader = new Single_Post_Meta_Manager_Loader (); 

Notez que la seule nouvelle ligne est la seconde Demandez une fois instruction qui importe le fichier de classe. 

Après cela, définissons les propriétés, le constructeur et les méthodes du Single_Post_Meta_Manager_Public classe:

version = $ version;  / ** * Utilise le partiel situé dans le répertoire admin pour restituer les métadonnées * post à la fin du contenu de la publication. * * @param string $ content Contenu de la publication. * @return string $ content Contenu de la publication, y compris les méta-données fournies. * / fonction publique display_post_meta_data ($ content) ob_start (); require_once plugin_dir_path (dirname (__FILE__)). 'admin / partials / single-post-meta-manager.php'; $ template = ob_get_contents (); $ content. = $ template; ob_end_clean (); retourne $ contenu; 

Ensuite, nous devons créer le Single Post Meta Manager define_public_hooks une fonction. Cela devrait ressembler à ceci:

get_version ()); $ this-> loader-> add_action ('the_content', $ public, 'display_post_meta_data'); 

Ensuite, nous devons définir un appel à cette fonction dans le constructeur. C'est juste en dessous de la $ this-> define_admin_hooks (); ligne, ajouter $ this-> define_public_hooks (); appel.

En supposant que tout se passe bien, vous devriez pouvoir activer le plug-in, charger n'importe quel article et voir les mêmes métadonnées maintenant affichées à l'avant de l'article ainsi que dans le tableau de bord de l'article:

Résumé

Comme mentionné précédemment dans ce didacticiel, l'affichage de ce type d'informations au début d'un message n'est pas nécessairement la meilleure idée; Cependant, apprendre à ajouter concrètement à un plugin existant introduira de toutes nouvelles fonctionnalités tout en réutilisant certains des composants existants..

En fin de compte, la solution à retenir est double:

  • Tirer parti du code existant est une chose puissante
  • Exposer des données qui ne sont pas pertinentes pour les utilisateurs est une idée dangereuse

Donc, après avoir lu ce tutoriel, notez que je n'approuve pas nécessairement le faire dans un environnement de production, mais plutôt comme un outil d'apprentissage. Autrement dit, utilisez-le à vos risques et périls.

Comme d'habitude, s'il vous plaît laissez toutes vos questions, commentaires et plus dans le flux ci-dessous!