Page 1 sur 1
Modifier les balises meta après que la page soit créée
Posté : 27 janv. 2021, 12:32
par two3d
Je souhaite modifier certaines valeur dans mon header et même rajouter des balises, comme celles de Facebook pour le partage.
Le problème c'est que j'ai créé une système de page en PHP, j'inclus d'abords les Scripts JS/CSS/Meta title, ensuite la page, puis le footer + des scripts dans le footer si il y a besoin.
Mais en faisant comme ça, si ma page inclue a le titre qui est dynamique, je l'ai dans l'os.
Ya til moyen de modifier/rajouter des balises, après la création de la page et que ce soit bien prix en compte par facebook et les moteurs de recherches pour le titre et description ?
Re: Modifier les balises meta après que la page soit créée
Posté : 27 janv. 2021, 12:34
par or 1
en javascript, c'est possible, mais je doute que tous les robots exécutent le javascript.
il vaut donc mieux revoir le système de page pour pouvoir modifier les header de chaque page.
Re: Modifier les balises meta après que la page soit créée
Posté : 27 janv. 2021, 13:22
par two3d
merci pour ta réponse mais javascript c'est le problème avec les robots, il faut que ce soit en dur déjà dans la code
J'ai pensé en enregistrant la page dans une variable puis de faire un
Code : Tout sélectionner
echo str_replace('[meta]','mes balises à rajouter, ici',$contenu);
Re: Modifier les balises meta après que la page soit créée
Posté : 27 janv. 2021, 13:42
par two3d
Re: Modifier les balises meta après que la page soit créée
Posté : 27 janv. 2021, 14:20
par two3d
J'ai finalement adapté l'exemple de PHP, mais je suis novice avec ob_start(), quelqu'un pourrait confirmer mon code svp ?
<?php
//j'inclus mon header
ob_start();
?>
<!doctype html>
<html>
<head>
<!--[META]-->
</head>
<body>
<?php
$header = ob_get_contents();
ob_clean();//pour ne pas afficher le code à l'écran
//j'inclus la page
ob_start();
$balises='<meta facebook et autres>';
?>
<p>C'est comme comparer des carottes et des pommes de terre.</p>
<?php
$contenu = ob_get_contents();
ob_clean();//pour ne pas afficher le code à l'écran
//j'inclus le footer
ob_start();
?>
</body>
</html>
<?php
$footer = ob_get_contents();
ob_clean();//pour ne pas afficher le code à l'écran
//on affiche le résultat final on remplçant le code "<!--[META]-->", par la variable $balises
echo str_replace("<!--[META]-->", $balises, $header).$contenu.$footer;
?>