Travailler avec des tables de base de données personnalisées dans WordPress
Je vous ai montré de nombreuses manières par lesquelles WordPress est déjà le plus flexible des CMS 5 choses que vous ne saviez peut-être pas que vous pouviez faire avec Wordpress 5 choses que vous ne pouviez pas savoir que vous ne pouviez pas faire avec Wordpress Être le système de blogs le plus polyvalent à ce jour, il surprise que les développeurs aient tordu et poussé Wordpress à devenir tellement plus efficace grâce à une utilisation intelligente des plugins. Si vous pensiez que Wordpress n'était que pour… Lire la suite. Une analyse rapide de la page Best of WordPress Plugins révélera également quelques-unes des nombreuses façons uniques et spécialisées de rendre votre blog plus efficace. Je vous ai même montré comment utiliser des types de messages personnalisés. Comment créer votre liste d'événements à l'aide de types de messages personnalisés [Wordpress] Comment créer votre liste d'événements à l'aide de types de messages personnalisés [Wordpress] L'un des avantages de l'utilisation de Wordpress est sa grande flexibilité. La version 3 a introduit le concept de types de publication personnalisés pour étendre les fonctionnalités intégrées. Jetons un coup d'oeil aujourd'hui à ce que vous pourriez faire… Lisez-en plus pour créer votre propre base de données Créez une base de données de critiques de produits avec Wordpress: Types de publication personnalisés, Champs personnalisés, Images en vedette et widgets! Créez une base de données de critiques de produits avec Wordpress: Types de messages personnalisés, Champs personnalisés, Images en vedette et widgets! La dernière fois, nous vous avons montré comment créer une simple liste d'événements en utilisant peut-être la fonctionnalité la plus puissante de WordPress 3.0 - les types de publication personnalisés. Après quelques demandes de développement, nous serons aujourd’hui… Read More; mais j'ai oublié une chose, je pense.
Que se passe-t-il si vous avez déjà une base de données contenant des informations sur les clients, par exemple, mais que vous souhaitez pouvoir interroger ces données et les afficher dans un modèle WordPress? Aujourd'hui, je vais vous montrer comment faire cela en toute sécurité dans le moteur WordPress..
Exigences
- Votre propre site WordPress auto-hébergé, évidemment.
- Compétences de base en PHP et MySQL - Je recommande les tutoriels PHP et MySQL de Tizag, car ils couvrent plus que suffisant et que vous pouvez les analyser en une journée et les référencer à nouveau en cas de besoin..
- Un ensemble de données existant dans MySQL.
- Ligne de commande de l'accès PHPMyAdmin pour fusionner les bases de données.
- Une base de données unique avec les deux ensembles de données - cela signifie que vous devez soit fusionner vos tables de base de données WordPress dans une base de données existante, puis les modifier. wp-config.php refléter les nouveaux nom d'utilisateur et mot de passe de la base de données; ou importer un jeu de données existant dans votre base de données WordPress. C'est plus facile si vous n'avez pas un autre système qui s'appuie sur les données. Quoi qu'il en soit, je vais supposer que vous avez déjà effectué cette étape - consultez mon article sur la procédure de sauvegarde complète de la base de données via une ligne de commande SSH. Procédure de sauvegarde de votre site Web via la ligne de commande SSH Procédure de sauvegarde de votre site Web via SSH Ligne de commande La sauvegarde de votre site Web ou de votre blog peut être une tâche coûteuse et ardue, nécessitant une variété de plug-ins ou des plans supplémentaires de votre fournisseur d'hébergement - mais ce n'est pas nécessairement le cas. Si vous avez SSH… Lire la suite si vous avez besoin d'indicateurs.
Ce tutoriel est à peu près aussi avancé que celui que nous allons obtenir chez MakeUseOf, mais il devrait vous ouvrir un monde de possibilités..
Pourquoi ferais-je cela??
Malgré les nombreux plug-ins et extensions disponibles dans WordPress, vous avez parfois déjà un jeu de données et le migrer vers un format que WordPress vous plairait serait plus fastidieux que nécessaire, en particulier si vous avez un autre système avec lequel vous devez interagir..
Aujourd'hui, je vais prendre l'exemple d'une simple base de données d'informations sur les clients et 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 début du site). ).
En tant que référence pour les noms de colonne et de table dans la base de données, il peut être utile d’installer le plug-in de navigateur de base de données, qui vous permettra également d’exécuter des tâches de base. où et commandé par requêtes pour tester votre code SQL. Voici une capture d'écran avec un exemple de jeu de données que j'ai créé - dans ce cas, un tableau appelé Clients, contenant des informations de base sur chacun de mes clients très importants..
Que ferons-nous précisément ici?
- Créer un nouveau modèle de page auquel nous pouvons ensuite appliquer du code PHP personnalisé.
- Voir comment créer une requête personnalisée dans la base de données, puis analyser les résultats - à l'aide de classes de base de données WordPress intégrées.
- Examen des autorisations au cas où vous souhaiteriez restreindre l'accès.
Faire un modèle personnalisé
Si vous souhaitez utiliser votre propre code PHP, la méthode la plus simple consiste à créer un modèle personnalisé, puis à appliquer le modèle à une page particulière créée dans WordPress. Commencez par ouvrir vos fichiers de thème et en dupliquant le page.php (ou single.php s'il n'y en a pas). Renommez-le quelque chose d'évident, comme “template-customers.php” comme j'ai choisi.
Tout en haut du fichier, nous devons dire à WordPress qu'il s'agit d'un modèle personnalisé. Faites ceci en ajoutant ce qui suit (Ceci est un commentaire de style PHP, il devrait donc être après toute balise PHP d'ouverture, le cas échéant):
/ * Nom du modèle: Clients * /
Évidemment, appelle ça comme tu veux.
Maintenant, trouvez la fonction de contenu principal. Vous pouvez le supprimer si vous voulez, mais je vais juste ajouter le code supplémentaire après. Avec le thème vingt-onze par défaut, vous recherchez:
Mais dans la plupart des thèmes, ce sera quelque chose comme:
C'est le bit qui affiche le contenu de votre message. Ainsi, tout ce que vous ajouterez après sera affiché juste après la zone de contenu principale. Juste pour vérifier que tout fonctionne, ajoutons une déclaration d'écho de base et sauvegardons le fichier..
Avant de pouvoir vérifier cela, nous devrons créer une page sur la page d'administrateur de WordPress et y appliquer notre modèle de page..
Publiez et consultez la page pour voir si votre déclaration echo a fonctionné.
La classe de requête personnalisée
Pour avoir un accès direct à la base de données, il vous suffit d'utiliser l'objet $ wpdb en le rendant global. Ces trois lignes devraient le faire - remplacez la déclaration d'écho générique que nous avons faite précédemment par ceci:
get_results ("SELECT * FROM clients;"); print_r ($ clients); ?>
Enregistrez et actualisez la page. le fonction print_r () extrait simplement toutes les données de l'objet du client - vous devriez donc voir que votre simple instruction SQL de sélectionner tout ce qui se trouve dans la table des clients a bien fonctionné. Il ne vous reste plus qu'à analyser les résultats pour les rendre utilisables. Bien sûr, vous pouvez mettre n'importe quelle instruction SQL select dans le Obtenir des résultats() méthode, mais je ne suis pas ici pour vous apprendre SQL afin que nous restions avec tout saisir tout pour l'instant.
Pour analyser les résultats de manière plus significative, je vais utiliser un tableau de base pour le moment. Remplace le print_r méthode avec le code suivant (ne vous inquiétez pas, je collerai le code complet plus tard si vous ne voulez pas le reconstituer vous-même):
écho "
". $ client-> nom." | "; écho "". $ client-> email." | "; écho "". $ client-> téléphone." | "; écho "". $ client-> adresse." | "; écho "
Une fois que vous avez chaque objet client dans un pour chaque, vous pouvez accéder facilement aux noms de champs avec $ customer-> field_name - ça ne pourrait vraiment pas être plus simple.
Sécuriser les objets
Dans ce cas, je ne veux pas vraiment que les données de mes clients soient affichées à n'importe qui et indexées par les moteurs de recherche - mais je veux tout de même qu'elles soient affichées en façade à l'aide de ce modèle; Alors, que pouvons-nous faire? Facile, nous allons utiliser le conditionnel WordPress is_user_logged_in (), et afficher un message rapide s'ils ne le sont pas. Voici à nouveau le bloc de code complet avec la nouvelle condition ajoutée:
get_results ("SELECT * FROM clients;"); écho "
". $ client-> nom." | "; écho "". $ client-> email." | "; écho "". $ client-> téléphone." | "; écho "". $ client-> adresse." | "; écho "
Enregistrez et actualisez, et vous devriez toujours voir le contenu. Cependant, déconnectez-vous, puis actualiser la page, et vous verrez maintenant le “Désolé, seuls les utilisateurs enregistrés… ” message.
Si vous souhaitez limiter cela à certains niveaux d'utilisateurs plutôt qu'à tous les utilisateurs enregistrés, utilisez le current_user_can () conditionnel à la place, avec une capacité associée (pour en savoir plus sur les capacités du codex). Ceci vérifierait les utilisateurs admin, par exemple - les seuls utilisateurs pouvant gérer les options de plug-in:
current_user_can ('manage_options')
Résumé
Comment éditer des milliers de publications Wordpress avec une seule commande SQL Comment éditer des milliers de publications Wordpress avec une seule commande SQL La croissance d'un blog prend des années, et énormément de douleur et de lutte. Ensuite, il y a les transitions majeures, lorsque vous réalisez que vous devez effectuer des changements majeurs, et que cela va prendre… Lisez plus tutoriel ou comment styliser votre sortie avec CSS. Le ciel est vraiment la limite avec WordPress, et j'espère que cela sera utile à certains d'entre vous dans vos projets WordPress.
La semaine prochaine, je traiterai du sujet un peu plus délicat de la réinsertion de données dans votre base de données personnalisée à l'aide d'un formulaire sur la page et d'un peu de magie AJAX / jQuery..
Vous n'avez pas encore d'installation WordPress? Consultez notre guide pour installer WordPress sur Bluehost. Comment installer WordPress sur Bluehost. Comment installer WordPress sur Bluehost. Bluehost est l’un des plus grands et des plus populaires fournisseurs d’hébergement Web. Voici un guide simple sur la façon d’installer WordPress sur Bluehost. Lire la suite .
En savoir plus sur: Outils pour les webmasters, Plugins Wordpress.