Utilisation de tables de base de données personnalisées dans WordPress
Je vous ai montré de nombreuses façons que WordPress est déjà le CMS le plus flexible. Jetez un coup d’œil à la page Best of WordPress Plugins et vous pourrez également découvrir des moyens uniques et de niche pour rendre votre blog plus efficace. Je vous ai même montré comment utiliser des types de publication personnalisés pour créer votre propre mini base de données ; mais je pense qu’il me manque une chose.
Que faire si vous disposez déjà d’une base de données d’informations sur les clients, mais que vous souhaitez pouvoir interroger ces données et les afficher dans un modèle WordPress ? Aujourd’hui, je vais vous montrer comment le faire en toute sécurité dans le moteur WordPress.
Exiger
- Évidemment, votre propre site WordPress hébergé.
- Compétences de base en PHP et MySQL – Je recommande les tutoriels Tizag PHP et MySQL car ils couvrent plus que suffisant et vous pouvez les compléter en une journée et les consulter à nouveau en cas de besoin.
- Jeu de données existant dans MySQL.
- Ligne de commande d’accès PHPMyAdmin pour fusionner des bases de données.
- Une seule base de données avec les deux ensembles de données – cela signifie que vous devez fusionner vos tables de base de données WordPress dans la base de données existante et modifier wp-config.php Reflétez le nom d’utilisateur et le mot de passe de la nouvelle base de données ; ou importez un ensemble de données existant dans votre base de données WordPress. C’est encore plus facile si vous n’avez pas d’autre système qui s’appuie sur les données. Quoi qu’il en soit, je suppose que vous l’avez déjà fait – si vous avez besoin de conseils, consultez mon article sur la façon de faire une sauvegarde complète de la base de données via la ligne de commande SSH.
Faire une vidéo du jour
Ce didacticiel est aussi avancé que nous le verrons dans MakeUseOf, mais il devrait vous ouvrir un monde de possibilités.
Pourquoi devrais-je faire ça?
Bien qu’il existe de nombreux plug-ins et extensions pour WordPress à notre disposition, vous disposez parfois déjà d’un ensemble de données et le migrer vers un format préféré de WordPress est plus compliqué qu’il n’en vaut la peine – surtout si vous en avez un autre dont vous avez besoin pour interagir avec le système.
Aujourd’hui, je vais prendre une simple base de données d’informations sur les clients comme exemple, et nous allons créer un modèle de page qui répertorie ces clients – uniquement pour les utilisateurs WordPress enregistrés (bien que la page elle-même soit accessible depuis le front-end du site).
Comme référence pour les noms de colonnes et de tables dans votre base de données, vous pouvez trouver utile d’installer le plug-in Database Browser, qui vous permet également d’exécuter des Où et Commande Requête pour tester votre code SQL. Voici une capture d’écran d’un exemple d’ensemble de données que j’ai créé – dans ce cas, une table appelée « clients » qui contient des informations de base sur chacun de mes clients très importants.
Qu’est-ce qu’on va faire exactement ici ?
- Créez un nouveau modèle de page et nous pourrons ensuite appliquer du code PHP personnalisé.
- Découvrez comment créer une requête personnalisée dans une base de données, puis analysez les résultats à l’aide des classes de base de données WordPress intégrées.
- Si vous souhaitez restreindre l’accès, consultez les autorisations.
Créer des modèles personnalisés
Si vous souhaitez utiliser une partie de votre propre code PHP, le moyen le plus simple consiste à créer un modèle personnalisé, puis à appliquer le modèle à une page spécifique que vous créez dans WordPress.Ouvrez d’abord votre fichier de thème et copiez page.php (ou alors single.php s’il n’y en a pas). Renommez-le en quelque chose d’évident comme « template-clients.php« Comme je choisis.
Tout en haut du fichier, nous devons indiquer à WordPress qu’il s’agit d’un modèle personnalisé.Faites cela en ajoutant ce qui suit (Ceci est un commentaire de style PHP, il devrait donc venir après toutes les balises PHP ouvertes (le cas échéant)):
/*
Nom du modèle : Client
*/
Évidemment, appelez-le comme vous voulez.
Maintenant, trouvez la principale fonctionnalité de contenu. Vous pouvez le supprimer si vous le souhaitez, mais j’ajoute simplement du code supplémentaire après. Avec le thème 21 par défaut que vous recherchez :
Mais dans la plupart des thèmes, ce sera comme ça :
C’est le bit où le contenu de votre message est affiché, donc tout ce que vous ajoutez après cela sera affiché après la zone de contenu principale. Pour vérifier que tout fonctionne, ajoutons une instruction echo de base et sauvegardons le fichier.
Avant de vérifier, nous devons créer une page sur la page d’administration de WordPress et y appliquer notre modèle de page.
Publiez et examinez la page pour voir si votre instruction echo fonctionne.
classe de requête personnalisée
Pour accéder directement à la base de données, il vous suffit d’utiliser l’objet $wpdb, ce qui en fait un objet global. Ces trois lignes devraient le faire – remplacez la déclaration d’écho générique que nous avons faite plus tôt par :
global $wpdb ;
$clients = $wpdb->get_results(« SELECT * FROM clients; »);
print_r($clients);
?>
Enregistrez et actualisez la page.cette fonction print_r() Videz simplement toutes les données dans l’objet client – vous devriez donc voir que la simple instruction SQL pour tout sélectionner dans la table des clients fonctionne correctement. Maintenant, tout ce que vous avez à faire est d’analyser le résultat en quelque chose d’utilisable.Bien sûr, vous pouvez mettre n’importe quelle instruction SQL select dans obtenir le résultat () méthode, mais je ne suis pas là pour vous apprendre le SQL, nous sommes donc obligés de tout saisir pour l’instant.
Pour analyser les résultats en quelque chose de plus significatif, j’utilise simplement une table de base pour l’instant.remplacer print_r Méthode utilisant le code suivant (Ne vous inquiétez pas, si vous ne voulez pas reconstituer le code complet vous-même, je collerai le code complet plus tard):
écho »<表> » ;
foreach($clients en tant que $client){
écho »
écho «
» ;
écho «
» ;
écho «
» ;
écho «
» ;
écho »
» ;
}
écho »
» ;
Une fois que vous avez inclus chaque objet client dans un avantvous pouvez facilement accéder au nom du champ $client->nom_champ – Cela ne pourrait vraiment pas être plus facile.
protéger les choses
Dans ce cas, je ne veux vraiment pas que mes données clients soient simplement affichées à n’importe qui et indexées par les moteurs de recherche – mais je veux quand même qu’elles soient affichées sur le front-end en utilisant ce modèle ; alors, que pouvons-nous faire ?C’est facile, nous utiliserons les conditions WordPress est_utilisateur_connecté_in(), Sinon, un message rapide s’affiche. Voici le bloc de code complet avec la nouvelle condition ajoutée :
si (is_user_logged_in()):
global $wpdb ;
$clients = $wpdb->get_results(« SELECT * FROM clients; »);
écho »<表> » ;
foreach($clients en tant que $client){
écho »
écho «
» ;
écho «
» ;
écho «
» ;
écho «
» ;
écho »
» ;
}
écho »
» ;
autre:
echo « Désolé, seuls les utilisateurs enregistrés peuvent voir ces informations » ;
Au cas où;
?>
Enregistrez et actualisez et vous devriez toujours pouvoir voir le contenu. Mais arrête, Puis Actualisez la page et vous verrez maintenant « Désolé, seuls les utilisateurs enregistrés… » information.
Si vous vouliez limiter cela à un certain niveau d’utilisateurs au lieu de tous les utilisateurs enregistrés, vous utiliseriez utilisateur_actuel_can() Il s’agit plutôt de fonctions conditionnelles et associées (en savoir plus sur les fonctions du codex). Par exemple, cela vérifiera l’utilisateur admin – le seul utilisateur qui peut gérer les options du plugin :
current_user_can(‘manage_options’)
généraliser
Je vais en rester là aujourd’hui car tout le reste sera un tutoriel SQL ou comment styliser la sortie avec CSS. Le ciel est vraiment la limite pour WordPress, j’espère que cela sera utile à certains d’entre vous dans vos projets WordPress.
La semaine prochaine, je discuterai de la façon de réinsérer des données dans votre base de données personnalisée à l’aide d’un formulaire sur la page, avec un peu de magie AJAX/jQuery. Et consultez certains de nos autres guides WordPress tels que Correction de 500 erreurs de serveur internes et pages vierges et Vignettes et tailles d’image en vedette.
Vous n’avez pas installé WordPress ? Consultez notre guide d’installation de WordPress sur Bluehost.
A propos de l’auteur