Je suis le webmaster d'un site d'actualité sur la Formule 1. Les articles sont stockés dans la base de données et je donne la possibilité de les partager sur les réseaux sociaux. Je remarque que pour le partage sur Facebook, c'est parfois l'image de l'article précédent qui s'affiche pour le partage.
Je vous affiche ici le code de ma page affichant un article:
Code : Tout sélectionner
<?php $titre = $_GET['titre'];
$noarticle = $_GET['id'];
// récupération des données de table 'newsjour'
$req = $bdd->prepare('SELECT sa.id_article,sa.date,sa.chapo,sa.titre,sa.texte,sau.nom FROM spip_articles sa, spip_auteurs_liens saa, spip_auteurs sau WHERE sa.id_article=saa.id_objet and saa.id_auteur=sau.id_auteur and sa.id_article=? and sa.statut=\'publie\'');
//parcours de données de la table
$req->execute(array($noarticle));
while ($donnees = $req->fetch())
{ $pos = strpos($donnees['date'], ' ');
$datejour = substr($donnees['date'], 0, $pos);
$fin = $pos+5;
$heure = substr($donnees['date'], $pos, -3);
$datenews = datedujour($datejour, "1");
$idarticle=$donnees['id_article'];
$description_page = substr($donnees['texte'], 0, 75).'...';
$ptspace = array("."," ");
$ptspace2 = array("","");?>
<h4><?php $image_article = $donnees['chapo'];
$titre_page = $donnees['titre'];
echo $titre_page; ?></h4><br />
<i>Posté le <?php echo $datenews; ?> - <?php echo $heure; ?> par <?php echo $donnees['nom']; ?></i><br /><br />
<img src="<?php echo $donnees['chapo']; ?>" srcset="<?php echo $donnees['chapo']; ?> 300w, <?php echo $donnees['chapo']; ?> 500w" sizes="35vw" class="imgnews" alt="<?php echo $donnees['chapo']; ?>" />
<?php if ($idarticle>2149)
{
$texte=str_replace($spip,$spip1,$donnees['texte']);
echo nl2br($texte);
}
else
echo $donnees['texte']; ?>
<?php } ?>Je me suis renseigné pour faire pareil avec l'image et voici ce que j'ai trouvé:
La propriété og :image doit être spécifiée de manière explicite, même si une valeur peut être déduite à partir d’autres balises.
Dès lors, je sauvegarde l'url de mon image dans la variable $image_article.
Je teste et aucun effet. En debuggant, je me rends compte que la variable reste vide. Pourtant, j'ai bien une image qui s'affiche sur chaque article. Voici l'article en question que je veux partager : http://www.superf1.be/news-Un-retour-au ... _4828.html
Juste pour info, je récupère mes variables dans mon footer de cette manière:
Code : Tout sélectionner
<?php // récupération des données de table 'newsjour'
$req = $bdd->prepare('SELECT chapo FROM spip_articles WHERE statut=\'publie\' ORDER BY id_article DESC LIMIT 1');
//parcours de données de la table
$req->execute(array($noarticle));
while ($donnees = $req->fetch())
{ $image=$donnees['chapo']; } ?>
<head>
<title><?php echo isset($titre_page) ? $titre_page : "Formule 1 - Super F1: Toute l''actu, les résultats et classements de la F1!" ?></title>
<meta name="description" content="<?php echo isset($description_page) ? $description_page : "Tout sur la Formule 1: Actualité, Résultats, Photos, Statistiques et Classements depuis 1997!" ?>" />
<meta property="og:image" content="<?php echo isset($image_article) ? $image_article : $image; ?>" />
</head>Avez-vous une idée d'où vient le problème?