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.

  1. Connexion à la base : On ouvre un lien entre PHP et MySQL.
  2. Requête SQL : On demande précisément les données qu’on veut.
  3. Exécution et récupération : On récupère les résultats.
  4. Affichage : On montre les données avec du HTML.
  5. Fermeture : On termine proprement en libérant la connexion.

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

Pourquoi ?


Étape 2 : Écrire une requête SQL

Pourquoi ?


Étape 3 : Exécuter la requête et récupérer les données

Pourquoi ?


Étape 4 : Afficher les données récupérées

Pourquoi ?


Étape 5 : Sécuriser les données affichées

Pourquoi ?


Étape 6 : Fermer la connexion à la base

Pourquoi ?

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 :

  1. Requête SQL : On demande précisément les données qu’on veut.
  2. Exécution et récupération : On récupère les résultats.
  3. 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 ?

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

<?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.