A présent, vous savez que le but de cette série est de démontrer comment WordPress peut être utilisé comme base pour le développement d'applications Web..
Nous avons commencé par examiner de manière approfondie de nombreux modèles de conception d'applications Web, en quoi WordPress diffère et pourquoi WordPress devrait être considéré davantage comme une base que comme un cadre..
Au cours des derniers articles, nous avons examiné les rôles des utilisateurs, les autorisations, la gestion de session, la messagerie et la sérialisation des données. Mais si vous sauvegardez des données dans la base de données, il est logique que vous les récupériez, à droite?
Heureusement, les API disponibles dans WordPress facilitent la récupération des informations de la base de données. En plus de cela, si vous avez trouvé le dernier article facile à suivre, vous ne devriez avoir aucun problème à le suivre avec cet article car de nombreux principes sont les mêmes:
Rien de bien compliqué, c'est ça?
Et ce n’est vraiment pas le cas, en particulier en ce qui concerne l’utilisation des mêmes API (bien que différentes fonctions) que nous avons utilisées pour enregistrer des informations dans la table des options et les tables de métadonnées. Dans cet article, nous allons poursuivre notre discussion sur la manière de récupérer des informations et de nous assurer que nous échappons correctement les informations pour nous assurer que les données sont sécurisées et propres pour le rendu dans le navigateur..
Comme je l'ai mentionné dans des articles précédents, l'un des principaux différenciateurs entre un site Web normal et une application Web est le stockage de données..
Et comme WordPress utilise sa propre base de données pour gérer le stockage des données et nous permet d'utiliser des API pour nos propres projets, il s'agit évidemment d'une application Web..
En outre, comme je viens de le mentionner dans le dernier article, comprendre comment enregistrer des données à l'aide des API appropriées est très simple, et une fois que vous avez appris à utiliser l'une d'entre elles, il est presque aussi facile d'utiliser les autres. En plus de cela, apprendre à récupérer des données est sans doute encore plus facile.
Cela dit, il convient de prendre en compte quelques nuances lors de la récupération des données. Mais d'abord, nous allons passer en revue la base de données, voir comment récupérer des informations, puis comment échapper correctement les informations avant de les renvoyer au navigateur..
Dans l'article précédent, nous avons un aperçu détaillé des tables dans lesquelles vous pouvez écrire. Vous pouvez lire à ce sujet plus en détail dans le premier article, mais voici un résumé des tableaux dont nous avons discuté:
wp_options
wp_posts
wp_postmeta
wp_comments
wp_commentmeta
N'oubliez pas que vous pouvez consulter tout cela et plus encore dans la page de description de la base de données WordPress Codex..
Donc, avec cela comme rafraîchissement, il est temps d'examiner comment extraire des informations de la base de données.
Heureusement, il est aussi simple que d’écrire des informations dans la base de données. Les deux principales différences sont les suivantes:
Avant de voir comment gérer les données, voyons d’abord comment lire les options de la base de données..
Rappelez-vous du dernier article que la façon dont nous procédons à l'écriture de données dans la table d'options est d'utiliser le add_option
ou la get_option
les fonctions.
Rappelez-vous: chacun prend une clé unique utilisée pour identifier la valeur dans la base de données et la valeur associée à cette clé. Dans notre exemple précédent, j'ai démontré ce qui suit:
if (isset ($ _POST ['value']) &&! empty ($ _POST ['value'])) $ clean_value = strip_tags (stripslashes ($ _POST ['value'])); add_option ('ma-valeur', $ clean_value);
Cela signifie que nous avons désinfecté et enregistré les informations dans la base de données à l'aide du ma valeur
clé.
Pour récupérer ces informations de la base de données, nous effectuons l'appel suivant:
$ my_value = get_option ('ma-valeur');
C'est presque trop simple.
Mais il y a un piège à la get_option
fonction: nous pouvons en fait spécifier une valeur par défaut à renvoyer s'il n'en existe pas déjà une.
Par exemple, disons que nous allons rechercher une valeur pour la clé votre valeur
, qui n'existe pas.
// $ your_value sera réellement égal à FALSE $ your_value = get_option ('your-value');
Dans ce cas, la fonction retournera FAUX
; Cependant, si nous spécifions un deuxième paramètre, nous pouvons alors renvoyer une valeur par défaut:
// $ your_value correspondra en fait à une chaîne vide $ your_value = get_option ('your-value', ");
Même encore, rien de terriblement compliqué, à droite?
Avant de regarder comment récupérer des informations à partir des méta-tables, il convient de mentionner que, tout comme nous définissons les informations à l'aide de set_theme_mod
, nous pouvons également récupérer les paramètres de thème en utilisant get_theme_mod
.
Directement du Codex WordPress:
Récupère un paramètre de modification pour le thème actuel. De même que
set_theme_mod ()
cette fonction peut parfois offrir aux développeurs de thèmes une alternative plus simple à l'API de configuration lorsqu'il est nécessaire de gérer des paramètres de base spécifiques à un thème..
Encore une fois, ceci est évidemment destiné à travailler avec des thèmes; cependant, je voulais le mentionner ici pour être complet et pour compléter la discussion commencée dans l'article précédent.
Cela mis à part, cela vise uniquement à montrer comment les options peuvent être stockées en fonction de la manière dont vous travaillez avec le développement de thèmes. cependant, cela sort vraiment du cadre de la série sur le développement d'applications.
Revenons maintenant aux tables de base de données qui sont plus applicables au développement d’applications et même à la gestion de contenu..
Dans le dernier article, j'ai présenté les fonctions de l'API responsables de l'écriture d'informations dans les tables de métadonnées. Plus précisément, j'ai décrit les fonctions suivantes:
add_post_meta
update_post_meta
add_comment_meta
update_comment_meta
De la même manière que le reste de l’API Options, il est très facile de récupérer les informations de chacune de ces tables, sauf qu’elle est fournie avec un seul 'gotcha ’par défaut, toutes les informations renvoyées par ces fonctions le sont sous la forme d’un fichier. tableau.
Cela signifie que si vous appelez:
$ my_data = get_post_meta (get_the_ID (), 'my-post-information');
Ensuite, les données vous seront renvoyées dans un tableau. Cependant, si vous voulez passer VRAI
à la fonction lors de l'appel, les données vous seront retournées dans une chaîne:
$ my_data = get_post_meta (get_the_ID (), 'my-post-information', TRUE);
Bien sûr, il n'y a pas droite façon de faire cela. Au lieu de cela, cela dépend des informations que vous souhaitez renvoyer et / ou de la manière dont vous souhaitez les récupérer. Parce qu'il n'y a pas qu'une seule façon de faire cela, vous devez juger de votre utilisation en fonction de la mise en œuvre de votre application..
Maintenant, tout comme nous avions besoin de nettoyer les informations avant de les écrire dans la base de données, il est également important d'échapper correctement aux données après les avoir extraites de la base de données, mais avant de les restituer au navigateur..
L'échappement de données est le processus par lequel nous nous assurons que les données que nous allons restituer à l'utilisateur sont sécurisées. C'est essentiellement la désinfection faite aux données; cependant c'est fait après les données ont été extraites de la base de données plutôt que d'être effectuées avant de les écrire dans la base de données.
En ce qui concerne l'acceptation des données, nous devons être conscients de quatre fonctions principales:
esc_html
est utilisé pour échapper aux blocs HTML.esc_url
est le moment où vous devez nettoyer les URL qui seront écrites dans des éléments de texte, des nœuds d'attributs ou n'importe où dans le balisage.esc_js
est utilisé pour échapper aux chaînes de texte utilisées pour faire écho à JavaScript - principalement JavaScript en ligne.esc_attr
encode plusieurs caractères qui peuvent altérer la sortie s'ils ne sont pas gérés correctement.La bonne chose à propos de cela est qu’ils fonctionnent généralement exactement de la même manière et qu’il est relativement facile de déterminer lequel vous devez utiliser:
esc_js
,esc_attr
.Assez facile, à droite?
Ainsi, par exemple, supposons que vous souhaitiez échapper à un attribut d’un champ de saisie provenant du $ _POST
collection. Pour ce faire, vous écririez le code suivant:
'; ?>
Ce sont de petites choses comme celle-ci qui peuvent faire beaucoup pour que votre application soit robuste à la fois en sérialisation et en extraction de données.
Nous avons couvert beaucoup de terrain dans cette série, mais il reste encore beaucoup à faire.
Exemple: l'une des fonctionnalités les plus intéressantes de certains des frameworks d'applications Web les plus populaires est la manière dont ils gèrent les URL. En bref, ils fournissent des schémas d'URL propres qui facilitent la compréhension des différentes actions disponibles pour les modèles de données utilisés dans l'application..
WordPress n’offre pas les URL les plus propres ou les plus claires; cependant, cela pouvez être modifié via l’utilisation de l’API Rewrite. Dans le prochain article, nous allons voir exactement comment nous pouvons introduire des règles personnalisées pour les URL propres qui ressemblent à quelque chose que vous verriez dans une application Web plutôt que dans un système de gestion de contenu ou un blog..