Pour rappel voici comment nous avons appelé le contenu de l’article 1 avec WordPress en PHP

Sans les commentaires :

Et sans WordPress ?
Pour se passer de WordPress et obtenir le même résultat, à savoir afficher le contenu de l’article 1, nous allons devoir suivre les étapes suivantes.
- Connexion à la base : On ouvre un lien entre PHP et MySQL.
- Requête SQL : On demande précisément les données qu’on veut.
- Exécution et récupération : On récupère les résultats.
- Affichage : On montre les données avec du HTML.
- Fermeture : On termine proprement en libérant la connexion.
Étape 1 : Se connecter à la base de données
Pourquoi ?
- Pour accéder aux données des articles, il faut se connecter à la base de données MySQL où WordPress stocke toutes les informations (articles, pages, utilisateurs, etc.).
- Sans connexion, aucune donnée ne peut être récupérée.
Étape 2 : Écrire une requête SQL
Pourquoi ?
- La requête SQL permet de demander précisément à MySQL ce qu’on veut récupérer.
- Par exemple, pour afficher un article spécifique (ici, l’article avec l’ID 1), on écrit une requête qui sélectionne uniquement les données pertinentes (
post_titleetpost_content). - Cette étape filtre les données pour éviter de tout récupérer inutilement.
Étape 3 : Exécuter la requête et récupérer les données
Pourquoi ?
- Une fois la requête écrite, il faut l’exécuter pour que MySQL envoie les résultats.
- Ensuite, on extrait ces résultats pour les utiliser dans notre script PHP.
Étape 4 : Afficher les données récupérées
Pourquoi ?
- Après avoir récupéré les données, on les affiche pour les utilisateurs du site.
- On peut utiliser du HTML pour structurer ces données, comme afficher le titre dans une balise
<h1>et le contenu dans une balise<div>.
Étape 5 : Sécuriser les données affichées
Pourquoi ?
- Les données venant de la base peuvent contenir des caractères spéciaux ou du code malveillant.
- En utilisant
htmlspecialchars(), on transforme ces caractères en texte neutre pour éviter des attaques comme l’injection de scripts malveillants (XSS).
Étape 6 : Fermer la connexion à la base
Pourquoi ?
- Une fois que nous avons récupéré et affiché les données, il est important de fermer la connexion à la base pour libérer les ressources.
- Cela améliore les performances et évite d’épuiser les capacités du serveur.
C’est parti ?
Nous allons créer un fichier « displayWithoutWP.php » dans le répertoire « PHPtests »


Étape 1 : Se connecter à la base de données
Rappel :

Donc
<?php
// Paramètres de connexion à la base de données
// Ces informations permettent de se connecter à la base MySQL
$host = 'localhost'; // Adresse du serveur MySQL (généralement 'localhost' en local)
$user = 'root'; // Nom d'utilisateur pour accéder à la base de données
$password = 'root'; // Mot de passe pour cet utilisateur
$dbname = 'local'; // Nom de la base de données que l'on souhaite utiliser
// Connexion à la base de données
// La classe "mysqli" est utilisée pour établir une connexion avec les paramètres donnés
$conn = new mysqli($host, $user, $password, $dbname);
// Vérification de la connexion
// On vérifie si une erreur s'est produite lors de la tentative de connexion
if ($conn->connect_error) {
// Si la connexion échoue, on arrête le script et affiche un message d'erreur
die("Erreur de connexion : " . $conn->connect_error);
} else {
// Si la connexion est réussie, on affiche un message de succès
echo "Connexion réussie à la base de données !";
}
?>

Etape 2,3 et première version de 4 :
- Requête SQL : On demande précisément les données qu’on veut.
- Exécution et récupération : On récupère les résultats.
- Affichage : On montre les données avec du HTML.
<?php
// Requête SQL pour récupérer le contenu de l'article avec l'ID 1
// Cette commande prépare une demande pour récupérer uniquement
// la colonne "post_content" (le contenu de l'article) de l'article dont l'ID est égal à 1.
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
// Exécution de la requête
// Cette ligne envoie la commande SQL à la base de données pour récupérer les informations demandées.
$result = $conn->query($sql);
// Récupération du contenu
// Cette ligne utilise la méthode fetch_assoc() pour récupérer les données envoyées par la base de données.
// fetch_assoc() renvoie une "paire", où le nom de la colonne ("post_content")
// est associé à sa valeur (le texte de l'article).
// Exemple : "post_content" => "Ceci est le contenu de l'article."
$article = $result->fetch_assoc();
// Extraction du contenu de la paire
// Cette ligne prend uniquement la valeur associée à la colonne "post_content"
// (le texte de l'article) et la place dans $content.
// Ainsi, $content ne contient plus que l'information utile : le contenu de l'article.
$content = $article['post_content'];
?>
<?php
// Affichage du contenu
// Cette ligne affiche la valeur de $content (le texte de l'article)
// directement dans la page web visible par l'utilisateur.
echo $content;
?>donc le code complet donne :
<?php
// Paramètres de connexion à la base de données
$host = 'localhost';
$user = 'root'; // Identifiant de la base
$password = 'root'; // Mot de passe de la base
$dbname = 'local'; // Nom de votre base de données WordPress
// Connexion à la base
$conn = new mysqli($host, $user, $password, $dbname);
// Vérification de la connexion
if ($conn->connect_error) {
die("Erreur de connexion : " . $conn->connect_error);
} else {
echo "Connexion réussie à la base de données !";
}
?>
<?php
// Requête SQL pour récupérer le contenu de l'article avec l'ID 1
// Cette commande prépare une demande pour récupérer uniquement
// la colonne "post_content" (le contenu de l'article) de l'article dont l'ID est égal à 1.
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
// Exécution de la requête
// Cette ligne envoie la commande SQL à la base de données pour récupérer les informations demandées.
$result = $conn->query($sql);
// Récupération du contenu
// Cette ligne utilise la méthode fetch_assoc() pour récupérer les données envoyées par la base de données.
// fetch_assoc() renvoie une "paire", où le nom de la colonne ("post_content")
// est associé à sa valeur (le texte de l'article).
// Exemple : "post_content" => "Ceci est le contenu de l'article."
$article = $result->fetch_assoc();
// Extraction du contenu de la paire
// Cette ligne prend uniquement la valeur associée à la colonne "post_content"
// (le texte de l'article) et la place dans $content.
// Ainsi, $content ne contient plus que l'information utile : le contenu de l'article.
$content = $article['post_content'];
?>
<?php
// Affichage du contenu
// Cette ligne affiche la valeur de $content (le texte de l'article)
// directement dans la page web visible par l'utilisateur.
echo $content;
?>Résultat :

Étape 5 : Fermer la connexion à la base de données
Nous avons ouvert une connexion à la base de données au début, mais nous ne l’avons pas encore fermée. Cela peut entraîner des problèmes de performance si des connexions inutilisées restent ouvertes.
Pourquoi cette étape est importante ?
- Fermer la connexion libère les ressources utilisées par la base de données.
- C’est une bonne pratique qui évite les fuites de ressources (même en local).
Solution : Ajouter cette ligne à la fin du script :
$conn->close();
C’est parti !
Voici le code complété avec l’étape 5 (fermeture de la connexion) :
<?php
// Paramètres de connexion à la base de données
$host = 'localhost';
$user = 'root'; // Identifiant de la base
$password = 'root'; // Mot de passe de la base
$dbname = 'local'; // Nom de votre base de données WordPress
// Connexion à la base
$conn = new mysqli($host, $user, $password, $dbname);
// Vérification de la connexion
if ($conn->connect_error) {
die("Erreur de connexion : " . $conn->connect_error);
} else {
echo "Connexion réussie à la base de données !";
}
?>
<?php
// Requête SQL pour récupérer le contenu de l'article avec l'ID 1
// Cette commande prépare une demande pour récupérer uniquement
// la colonne "post_content" (le contenu de l'article) de l'article dont l'ID est égal à 1.
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
// Exécution de la requête
// Cette ligne envoie la commande SQL à la base de données pour récupérer les informations demandées.
$result = $conn->query($sql);
// Récupération du contenu
// Cette ligne utilise la méthode fetch_assoc() pour récupérer les données envoyées par la base de données.
// fetch_assoc() renvoie une "paire", où le nom de la colonne ("post_content")
// est associé à sa valeur (le texte de l'article).
// Exemple : "post_content" => "Ceci est le contenu de l'article."
$article = $result->fetch_assoc();
// Extraction du contenu de la paire
// Cette ligne prend uniquement la valeur associée à la colonne "post_content"
// (le texte de l'article) et la place dans $content.
// Ainsi, $content ne contient plus que l'information utile : le contenu de l'article.
$content = $article['post_content'];
?>
<?php
// Affichage du contenu
// Cette ligne affiche la valeur de $content (le texte de l'article)
// directement dans la page web visible par l'utilisateur.
echo $content;
?>
<?php
// Fermeture de la connexion
// Cette ligne ferme la connexion à la base de données pour libérer les ressources utilisées.
$conn->close();
?>

La fermeture explicite de la connexion avec $conn->close() garantit une gestion efficace des ressources du serveur. Cette étape est invisible pour l’utilisateur.
Simplification
Nous ne sommes pas obligé d’ouvrir et fermé PHP plusieurs fois
- Meilleure lisibilité : Le code reste plus compact et clair.
- Moins d’erreurs potentielles : Réduire les transitions entre PHP et HTML diminue le risque d’oublis ou d’erreurs.
- Bonne pratique pour du code purement PHP : Si le fichier n’inclut pas de HTML mélangé, il est préférable de maintenir les balises PHP ouvertes.
<?php
// Paramètres de connexion à la base de données
$host = 'localhost';
$user = 'root'; // Identifiant de la base
$password = 'root'; // Mot de passe de la base
$dbname = 'local'; // Nom de votre base de données WordPress
// Connexion à la base
$conn = new mysqli($host, $user, $password, $dbname);
// Vérification de la connexion
if ($conn->connect_error) {
die("Erreur de connexion : " . $conn->connect_error);
} else {
echo "Connexion réussie à la base de données !<br>";
}
// Requête SQL pour récupérer le contenu de l'article avec l'ID 1
// Cette commande prépare une demande pour récupérer uniquement
// la colonne "post_content" (le contenu de l'article) de l'article dont l'ID est égal à 1.
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
// Exécution de la requête
// Cette ligne envoie la commande SQL à la base de données pour récupérer les informations demandées.
$result = $conn->query($sql);
// Récupération du contenu
// Cette ligne utilise la méthode fetch_assoc() pour récupérer les données envoyées par la base de données.
// fetch_assoc() renvoie une "paire", où le nom de la colonne ("post_content")
// est associé à sa valeur (le texte de l'article).
// Exemple : "post_content" => "Ceci est le contenu de l'article."
$article = $result->fetch_assoc();
// Extraction du contenu de la paire
// Cette ligne prend uniquement la valeur associée à la colonne "post_content"
// (le texte de l'article) et la place dans $content.
// Ainsi, $content ne contient plus que l'information utile : le contenu de l'article.
$content = $article['post_content'];
// Affichage du contenu
// Cette ligne affiche la valeur de $content (le texte de l'article)
// directement dans la page web visible par l'utilisateur.
echo $content;
// Fermeture de la connexion
// Cette ligne ferme la connexion à la base de données pour libérer les ressources utilisées.
$conn->close();
?>
Voici le code sans commentaire.
Le code peut paraitre long mais le voici sans commentaire pour prendre du recul.
<?php
$host = 'localhost';
$user = 'root';
$password = 'root';
$dbname = 'local';
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die("Erreur de connexion : " . $conn->connect_error);
} else {
echo "Connexion réussie à la base de données !<br>";
}
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
$result = $conn->query($sql);
$article = $result->fetch_assoc();
$content = $article['post_content'];
echo $content;
$conn->close();
?>
On pourrait enlever la vérification de bonne connexion à la base :
<?php
$host = 'localhost';
$user = 'root';
$password = 'root';
$dbname = 'local';
$conn = new mysqli($host, $user, $password, $dbname);
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
$result = $conn->query($sql);
$article = $result->fetch_assoc();
$content = $article['post_content'];
echo $content;
$conn->close();
?>et on pourrait envoyer les credentials de la BDD directement dans la ligne « $conn = new mysqli .. »
<?php
$conn = new mysqli('localhost', 'root', 'root', 'local');
$sql = "SELECT post_content FROM wp_posts WHERE ID = 1";
$result = $conn->query($sql);
$article = $result->fetch_assoc();
$content = $article['post_content'];
echo $content;
$conn->close();
?>
Comparaison avec le chargement et les fonctions de WordPress

Et la suite ?
Bien entendu, maintenant, on pourrait se passer complètement de WordPress côté back-office, créer le contenu de la table de la base de données à la main et utiliser le script pour appeler le contenu. C’est ce que nous allons voir dans la prochaine étape. Ensuite, nous apprendrons à créer la structure de la table et à nous passer complètement du moteur WordPress.