• 0
Marie-Anne

Récupération des infos des balises title et description

Question

Marie-Anne    19

Bonjour,

Je cherche la façon de récupérer le contenu des balises titre et description pour pouvoir remplir automatiquement les balises Open Graph selon la page où on se trouve.

<meta property="og:title" content="??" >
<meta property="og:description" content="??">

Merci d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites

47 réponses à cette question

Messages recommandés

  • 1
CroqueWeb    103

Méthode incluant le nom du site :

	/**
	 * Affiche les meta balises pour l'open graph
	 */
	public function showOGmeta() {
	echo '<meta property="og:title" content="' . $this->core->output['metaTitle'] . '">';
	echo '<meta property="og:description" content="' . $this->core->output['metaDescription'] . '">';
	echo '<meta property="Og:site_name" content="'. $this->getData(['config', 'title']) . '">';
	echo '<meta property="og:type" content="website">';
	}

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 1
CroqueWeb    103

Ajout dans les fichiers .php de core/layout :

<?php $layout = new layout($this); ?>
<!DOCTYPE html>
<html xmlns:og="http://ogp.me/ns#">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<?php $layout->showMetaTitle(); ?>
	<?php $layout->showMetaDescription(); ?>
	<?php $layout->showOGmeta(); ?>
	<?php $layout->showFavicon(); ?>
	<?php $layout->showVendor(); ?>

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
PeterRabbit    382

Bonjour @Marie-Anne,

 

Ces instructions devraient te permettre de récupérer les deux données que tu veux :

$titre = $this->getData(['page', $this->getUrl(0), 'title']);
$metaDescription = $this->getData(['page', $this->getUrl(0), 'metaDescription']);

Pour la suite, je ne peux rien te dire, ne connaissant pas la chose. o.O

 

Pour mieux comprendre comment fonctionne la "base de données" de Zwii, édite "site/data/data.json" (après avoir fait une copie de sauvegarde, bien entendu xD), copies-en le contenu et colle-le dans la fenêtre de ce site. Un clic sur le bouton "Unminify", et voici :

 

unminify.jpg.5974591fcd2e0db36a47204f30922c8d.jpg

 

C'est tout de même plus parlant ! 

 

 

 

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Rémi    152

@Marie-Anne il y a deux méthodes dans core.php pour retourner le titre et la description : 

 

/**
 * Affiche le meta titre
 */
public function showMetaTitle() {
    echo '<title>' . $this->core->output['metaTitle'] . '</title>';
}

/**
 * Affiche la meta description
 */
public function showMetaDescription() {
    echo '<meta name="description" content="' . $this->core->output['metaDescription'] . '">';
}

Il faut ajouter les balises dans les méthodes ci-dessus. Le mieux serait de voir avec @cybertaf, @CroqueWeb ou @PeterRabbit pour faire un intégration dans une prochaine mise à jour du CMS ;) .

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
CroqueWeb    103

Bonjour @Marie-Anne

Et bienvenue chez ZwiiCMS

Pour renseigner ces balises de manière automatique, édite comme tu l'as déjà fait le fichier core/layout/main.php et ajoute ceci :

<meta property="og:title" content="<?php echo $this->getData(['config', 'title']); ?>">
<meta property="og:description" content="<?php echo $this->getData(['config', 'metaDescription']); ?>">

à partir de la ligne 11

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Rémi    152
Il y a 1 heure, CroqueWeb a dit :

Bonjour @Marie-Anne

Et bienvenue chez ZwiiCMS

Pour renseigner ces balises de manière automatique, édite comme tu l'as déjà fait le fichier core/layout/main.php et ajoute ceci :


<meta property="og:title" content="<?php echo $this->getData(['config', 'title']); ?>">
<meta property="og:description" content="<?php echo $this->getData(['config', 'metaDescription']); ?>">

à partir de la ligne 11

 

Y a un mauvais point avec cette technique, si la page intègre un méta titre ou une méta description, ils ne seront pas utilisés pour les balises open graph ( et vis versa avec la technique de PeterRabbit). C'est pour ça que ce serait bien de développer un truc rapidos pour l'intégrer (c'est un gros plus pour les réseaux sociaux) :) .

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
CroqueWeb    103

Bonsoir

Je n'avais pas saisi qu'il faut que ce soit le titre et la description de chacune des pages qui doit apparaître dans ces balises

Mon exemple ne permet d'afficher que le titre et la description commune à tout le site

Pour afficher ces renseignements automatiquement pour chaque page, voici comment procéder :

  • Edite core/core.php, et place les lignes de code ci-desous à la ligne 1963
	//  Affiche les meta titre & description pour l'open graph
	public function showOGmeta() {
	echo '<meta property="og:title" content="' . $this->core->output['metaTitle'] . '">';
	echo '<meta property="og:description" content="' . $this->core->output['metaDescription'] . '">';
	}
  • Edite ensuite core/layout/main.php et ajoute ceci ligne 11
<?php $layout->showOGmeta(); ?>

Tu auras alors les meta balises og renseignées avec le meta titre et la meta description de chacune de tes pages

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
CroqueWeb    103
Il y a 9 heures, Rémi a dit :

Il faut ajouter les balises dans les méthodes ci-dessus. Le mieux serait de voir avec @cybertaf, @CroqueWeb ou @PeterRabbit pour faire un intégration dans une prochaine mise à jour du CMS ;) .

C'est un peu ce que je viens de faire, j'ai simplement ajouté une méthode, plutôt qu'ajouter les balises dans les méthodes existantes

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
CroqueWeb    103

Je vois que tu as ajouté une série de balises pour Twitter, je suppose sur le même principe :

<meta property="og:title" content="Les nouvelles de la ferme - La ferme Du-Pâquis Fleury"><meta property="og:description" content="Exploitation maraîchère bio de légumes, aromates et fruits dans les respects de la nature et des animaux."><meta property="og:type" content="website" >
<meta property="og:site_name" content="La ferme Du-Pâquis Fleury" >
<meta name="twitter:title" content="Les nouvelles de la ferme - La ferme Du-Pâquis Fleury"><meta name="twitter:description" content="Exploitation maraîchère bio de légumes, aromates et fruits dans les respects de la nature et des animaux.">

ça présente tout de même l'inconvénient d'alourdir le code des pages, donc leurs poids.

Les rézosocios pourraient aussi bien utiliser les informations contenues dans les balises html disponibles, c'est un avis personnel, mais je trouve cette obligation d'ajout de balises propriétaires, bien que dites "open", abusive.

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Marie-Anne    19
il y a 13 minutes, CroqueWeb a dit :

Je vois que tu as ajouté une série de balises pour Twitter, je suppose sur le même principe :


<meta property="og:title" content="Les nouvelles de la ferme - La ferme Du-Pâquis Fleury"><meta property="og:description" content="Exploitation maraîchère bio de légumes, aromates et fruits dans les respects de la nature et des animaux."><meta property="og:type" content="website" >
<meta property="og:site_name" content="La ferme Du-Pâquis Fleury" >
<meta name="twitter:title" content="Les nouvelles de la ferme - La ferme Du-Pâquis Fleury"><meta name="twitter:description" content="Exploitation maraîchère bio de légumes, aromates et fruits dans les respects de la nature et des animaux.">

ça présente tout de même l'inconvénient d'alourdir le code des pages, donc leurs poids.

Les rézosocios pourraient aussi bien utiliser les informations contenues dans les balises html disponibles, c'est un avis personnel, mais je trouve cette obligation d'ajout de balises propriétaires, bien que dites "open", abusive.

 

Oui j'ai testé ^^ 

Je suis d'accord avec toi sur la façon d'obliger l'utilisation de balises propriétaires.

Pour le début je garde mais par la suite j’allégerais le code :lol: 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
CroqueWeb    103

Il y a une balise mal renseignée sur ton site :

<link rel="prefetch" href="https://www.lafermedupaquisfleury.fr">

Le pré-chargement ne peut se faire que sur un fichier précis, tq une page, une feuille de style, une image ou un fichier JavaScript, cette mise en cache ne peut pas fonctionner avec une adresse globale de répertoire, ici la racine de ton site

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Marie-Anne    19
Il y a 8 heures, CroqueWeb a dit :

Il y a une balise mal renseignée sur ton site :


<link rel="prefetch" href="https://www.lafermedupaquisfleury.fr">

Le pré-chargement ne peut se faire que sur un fichier précis, tq une page, une feuille de style, une image ou un fichier JavaScript, cette mise en cache ne peut pas fonctionner avec une adresse globale de répertoire, ici la racine de ton site

Oups bien vu ^^ je suis en train de tester le prefetch sur ma page galerie :) je suis en cours de travail dessus.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
cybertaf    144

La version dev 8.3.14e (dispo à l'essai) prend en compte la modification des deux méthodes déjà incluses dans le core.php comme indiqué par Rémi

 

Il y a 19 heures, CroqueWeb a dit :
  • Edite ensuite core/layout/main.php et ajoute ceci ligne 11

<?php $layout->showOGmeta(); ?>

Tu auras alors les meta balises og renseignées avec le meta titre et la meta description de chacune de tes pages

 

N'est pas suffisant la balise d'ouverture <html> doit également être modifiée comme suit :
 

<html xmlns:og="http://ogp.me/ns#">

Et il y avait 3 CSS à modifier : blank ; light et main

 

Problème résolu...

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
CroqueWeb    103
Il y a 1 heure, cybertaf a dit :

modification des deux méthodes déjà incluses dans le core.php comme indiqué par Rémi

Il me semble plus pertinent d'ajouter une méthode, tel que je l"ai proposé, pour la clarté du code source d'une part, et pour éventuellement pouvoir supprimer cette obligation de se conformer aux réseaux sociaux en général, et à Facebook en particulier. De plus il manque les balises propriétaires de Twitter, et si encore un autre réseau social nous impose ses balises il nous faudra également les ajouter ?

 

Il y a 1 heure, cybertaf a dit :
Il y a 21 heures, CroqueWeb a dit :
  • Edite ensuite core/layout/main.php et ajoute ceci ligne 11


<?php $layout->showOGmeta(); ?>

Tu auras alors les meta balises og renseignées avec le meta titre et la meta description de chacune de tes pages

 

N'est pas suffisant la balise d'ouverture <html> doit également être modifiée comme suit :
 


<html xmlns:og="http://ogp.me/ns#">

Et il y avait 3 CSS à modifier : blank ; light et main

 

Problème résolu...

 

Ce n'est toujours pas suffisant, en plus des balises Twitter, il manque la balise og image et la balise og type

Voici un exemple précis d'insertion de données Open Graph:

<html xmlns:og="http://ogp.me/ns#">
<head>
<title>Article sur l'Open Graph</title>
<meta property="og:title" content="Article sur l'Open Graph par Yakaferci" />
<meta property="og:type" content="article" />
<meta property="og:url" content="http://www.yakaferci.com/open-graph/" />
<meta property="og:image" content="http://www.yakaferci.com/images/yakaferci_small.jpg" />
...
</head>
...
</html>

(https://www.yakaferci.com/open-graph/)

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Contenu similaire

    • Par danyelguero
      Lors de l'import d'image depuis mon poste, l'image s'importe mais au terme de l'upload j'ai le message qu'il manque la librairie GD.

       
      Après recherche , il s'agit du paquet php-gd ou pour ma version de php 7.3 php7.3-gd que j'ai donc installé.
       
      J'ai relancé apache2 et php mais le message persiste .
       
      De même les icônes présent au début de chaque article de blog dans la vue liste des articles ne s'affiche pas.
       
      Auriez-vous une idée??
    • Par Manu64
      Bonjour les codeurs.
      Peut-on alléger core.php afin de supprimer les lignes des pages de l'installation par défaut ?
       
      Bien sûr, je sais qu'à chaque mise à jour, le fichier reprendra du poids.
      Y a t-il moyen de trouver une solution pour faire en sorte que ?
       
      Merci
      Tschuss
       
    • Par pwepwe973
      Bonjour j'ai contacté que parfois en installant des plugins cela crée des code html dupliqué dans la page


         je ne sais pas d’où cela peu venir je me dis que cela peu alourdir les pages

      Cordialement @pwepwe973