Meta titres des catégories

garys02garys02 Member
2 nov. modifié dans Discussions générales

Bonjour,

Quand je clique sur ma catégorie, celle-ci affiche le meta titre + le nom du site automatiquement.
J'aimerais afficher uniquement le meta titre de ma categorie pour google.

J'ai modifié le header mais là ça n'affiche pas la balise titre de la catégorie, juste le nom de la categorie !

<title>
<?php

if($plxShow->mode() == 'home') {

    // Page d'accueil → titre défini pour la page
    $plxShow->pageTitle();

} elseif($plxShow->mode() == 'article') {

    // Article → afficher uniquement le titre de l'article
    $plxShow->artTitle();

} elseif($plxShow->mode() == 'categorie') {

    // Page de catégorie → afficher uniquement le meta titre de la catégorie
    $plxShow->catName('meta');

} else {

    // Autres pages (statiques, recherche, etc.)
    $plxShow->pageTitle();

}

?>
</title>

Mais $plxShow->catName('meta'); ne marche pas pour afficher le meta titre .

Comment faire ? Merci

Réponses

  • garys02garys02 Member
    2 nov. modifié

    Solution pour le header pour ne pas afficher le titre du site dans le meta titre dans chaque page, article et cat, remplacer la balise titre par ceci :

    <title>
    <?php
    $mode = $plxShow->mode();
    
    // Page d'accueil
    if($mode == 'home') {
        $plxShow->pageTitle();
    }
    
    // Page article
    elseif($mode == 'article') {
        $plxShow->artTitle();
    }
    
    // Page de catégorie
    elseif($mode == 'categorie' || $mode == 'cat') {
        // On récupère les infos de la catégorie active
        $catId = $plxShow->plxMotor->cible;
        $titleHtml = $plxShow->plxMotor->aCats[$catId]['title_htmltag'];
        $catName   = $plxShow->plxMotor->aCats[$catId]['name'];
    
        // Si le champ "Contenu balise title" est renseigné, on l'affiche
        if(!empty($titleHtml)) {
            echo plxUtils::strCheck($titleHtml);
        } else {
            // Sinon on affiche le nom de la catégorie
            echo plxUtils::strCheck($catName);
        }
    }
    
    // Autres pages
    else {
        $plxShow->pageTitle();
    }
    ?>
    </title>
    
  • garys02garys02 Member

    Résolu

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    Dans ton thème, utilise la balise (fichier header.php) comme ceci :

    <title><?php $plxShow->pageTitle('categorie=#title'); ?></title>
    

    Voir la doc de plxShow::pageTitle() dans le fichier core/lib/class.plx.show.php (ligne 202)

  • bg62bg62 Member

    :) j'avais mis justement cette question ( pour les titres des tags .... )
    https://forum.pluxml.org/discussion/7878/modification-du-title-dans-une-categorie-de-pages#latest
    auriez-vous une solution ?
    @+

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @bg62,
    Pour les tags, c'est un peu plus compliqué. Mais ceci doit marcher :

    <title><?php $plxShow->pageTitle('categorie=#title;tags=' . ucfirst($plxShow->plxMotor->cible) .' - #subtitle'); ?></title>
    
  • bg62bg62 Member

    @bazooka07 super !!! ça fonctionne nickel ( tout en sachant qu'il ne faut pas faire de doublons avec les noms des catégories )
    grands mercis
    je m'y mets :)

  • garys02garys02 Member
    10 nov. modifié

    Pas réussi à faire afficher la meta description d'une catégorie quand on a cliqué sur la catégorie...
    Edit : ok en affichant la meta titre maintenant la meta description s'est affichée.

  • garys02garys02 Member
    13 nov. modifié

    Je vous partage mon header avec le seo qui se remplit avec les parametres du site (schema basique, og, twitter), avec une image de bannière bg.webp. Si vous voyez des choses manquantes niveau seo n'hésitez pas.
    Et sinon enlever la balise h5 du header du theme defaut svp, les sous-titres doivent s'afficher dans l'ordre, j'ai commenté ça :

    <!--    <p class="h5 no-margin"><?php $plxShow->subTitle(); ?></p>  -->
    

    PS: je viens de mettre à jour les og url et twitter url si un modérateur peut ajuster l'affichage du code...

    <?php if (!defined('PLX_ROOT')) exit; ?>
    <!DOCTYPE html>
    <html lang="<?php $plxShow->defaultLang() ?>">
    <head>
        <meta name="robots" content="index, follow">
        <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "name": "<?php echo html_entity_decode($plxShow->plxMotor->aConf['title'], ENT_NOQUOTES, 'UTF-8'); ?>",
            "description": "<?php echo html_entity_decode($plxShow->plxMotor->aConf['meta_description'], ENT_NOQUOTES, 'UTF-8'); ?>",
            "url": "<?php echo $plxShow->plxMotor->racine; ?>",
            "image": "<?php echo $plxShow->plxMotor->racine; ?>themes/defaut/img/pluxml-logo-black.png"
        }
        </script>                              
        <meta charset="<?php $plxShow->charset('min'); ?>">
        <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0">
    
            <!-- Préchargement du fichier CSS critique -->
    
        <link rel="preload" href="<?php $plxShow->template(); ?>/fonts/OpenSans-Regular-webfont.woff" as="font" type="font/woff" crossorigin="anonymous" />
        <link rel="preload" href="<?php $plxShow->template(); ?>/css/plucss.min.css?v=1.3.1" as="style" type="text/css">
        <link rel="preload" href="<?php $plxShow->template(); ?>/css/theme.min.css?v=5.8.21" as="style" type="text/css">
        <link rel="preload" href="<?php $plxShow->template(); ?>/img/bg.webp" as="image" type="image/webp" fetchpriority="high"> 
    
        <title><?php
    if($plxShow->mode() == 'home') {
        // Page d'accueil → titre défini pour la page
        $plxShow->pageTitle('categorie=#title');
    } elseif($plxShow->mode() == 'article') {
        // Article → afficher uniquement le titre de l'article
        $plxShow->artTitle('categorie=#title');
    } elseif($plxShow->mode() == 'tags') {
        // Page tags → ajouter le tag dans le titre
        $plxShow->pageTitle('categorie=#title;tags=' . ucfirst($plxShow->plxMotor->cible) . ' - #subtitle');
    } else {
        // Autres pages (catégories, static, etc.) → titre par défaut
        $plxShow->pageTitle('categorie=#title');
    }
    ?></title>
    <?php
    // meta description
    ob_start();
    $plxShow->meta('description');
    $meta = ob_get_clean();
    
    // Extraire le contenu entre content=""
    preg_match('/content="([^"]*)"/', $meta, $matches);
    $desc = isset($matches[1]) ? html_entity_decode($matches[1], ENT_QUOTES, 'UTF-8') : '';
    ?>
        <meta name="description" content="<?= $desc ?>">
        <meta name="author" content="<?php echo html_entity_decode($plxShow->plxMotor->aConf['title'], ENT_NOQUOTES, 'UTF-8'); ?>" />
    <?php
        $plxShow->meta('keywords');
    ?>
        <meta property="og:type" content="article">
        <meta property="og:url" content="<?php $mode=$plxShow->mode(); echo ($mode=='home')?$plxShow->racine():($mode=='article'?$plxShow->artUrl():($mode=='categorie'||$mode=='cat'?$plxShow->catUrl($plxShow->plxMotor->cible):($mode=='static'?$plxShow->staticUrl():($mode=='tags'?$plxShow->plxMotor->urlRewrite('?tag/'.plxUtils::urlify($plxShow->plxMotor->cible)):$plxShow->racine())))); ?>">
        <meta property="og:title" content="<?php $mode=$plxShow->mode();if($mode=='home'){echo html_entity_decode($plxShow->pageTitle(),ENT_NOQUOTES,'UTF-8');}elseif($mode=='article'){echo html_entity_decode($plxShow->artTitle(),ENT_NOQUOTES,'UTF-8');}elseif($mode=='categorie'||$mode=='cat'){$catId=$plxShow->plxMotor->cible;$titleHtml=$plxShow->plxMotor->aCats[$catId]['title_htmltag'];$catName=$plxShow->plxMotor->aCats[$catId]['name'];if(!empty($titleHtml)){echo html_entity_decode(plxUtils::strCheck($titleHtml),ENT_NOQUOTES,'UTF-8');}else{echo html_entity_decode(plxUtils::strCheck($catName),ENT_NOQUOTES,'UTF-8');}}else{echo html_entity_decode($plxShow->pageTitle(),ENT_NOQUOTES,'UTF-8');}?>">
    <?php
    ob_start();
    $plxShow->meta('description');
    $meta = ob_get_clean();
    // Extraire le contenu entre content=""
    preg_match('/content="([^"]*)"/', $meta, $matches);
    $desc = isset($matches[1]) ? html_entity_decode($matches[1], ENT_QUOTES, 'UTF-8') : '';
    ?>
        <meta property="og:description" content="<?= $desc ?>">
        <meta property="og:image" content="<?php echo $plxShow->plxMotor->racine; ?>themes/defaut/img/bg.webp">
        <meta name="twitter:card" content="summary_large_image">
         <meta name="twitter:url" content="<?php $mode=$plxShow->mode(); echo ($mode=='home')?$plxShow->racine():($mode=='article'?$plxShow->artUrl():($mode=='categorie'||$mode=='cat'?$plxShow->catUrl($plxShow->plxMotor->cible):($mode=='static'?$plxShow->staticUrl():($mode=='tags'?$plxShow->plxMotor->urlRewrite('?tag/'.plxUtils::urlify($plxShow->plxMotor->cible)):$plxShow->racine())))); ?>">
        <meta name="twitter:title" content="<?php 
    $mode = $plxShow->mode();
    if($mode == 'home') {
        echo html_entity_decode($plxShow->pageTitle(), ENT_NOQUOTES, 'UTF-8');
    } elseif($mode == 'article') {
        echo html_entity_decode($plxShow->artTitle(), ENT_NOQUOTES, 'UTF-8');
    } elseif($mode == 'categorie' || $mode == 'cat') {
        $catId = $plxShow->plxMotor->cible;
        $titleHtml = $plxShow->plxMotor->aCats[$catId]['title_htmltag'];
        $catName = $plxShow->plxMotor->aCats[$catId]['name'];
        if(!empty($titleHtml)){
            echo html_entity_decode(plxUtils::strCheck($titleHtml), ENT_NOQUOTES, 'UTF-8');
        } else {
            echo html_entity_decode(plxUtils::strCheck($catName), ENT_NOQUOTES, 'UTF-8');
        }
    } else {
        echo html_entity_decode($plxShow->pageTitle(), ENT_NOQUOTES, 'UTF-8');
    }
    ?>">
    <?php
    ob_start();
    $plxShow->meta('description');
    $meta = ob_get_clean();
    preg_match('/content="([^"]*)"/', $meta, $matches);
    $desc = isset($matches[1]) ? html_entity_decode($matches[1], ENT_QUOTES, 'UTF-8') : '';
    ?>
        <meta name="twitter:description" content="<?= $desc ?>">
        <meta name="twitter:image" content="<?php echo $plxShow->plxMotor->racine; ?>themes/defaut/img/bg.webp">
    
        <link rel="icon" href="<?php $plxShow->template(); ?>/img/favicon.png" />
        <link rel="stylesheet" href="<?php $plxShow->template(); ?>/css/plucss.min.css?v=1.3.1" media="screen,print"/>
        <link rel="stylesheet" href="<?php $plxShow->template(); ?>/css/theme.min.css?v=5.8.21" media="screen"/>        
    
    <?php
        $plxShow->templateCss();
        $plxShow->pluginsCss();
    ?>
        <link rel="alternate" type="application/rss+xml" title="<?php $plxShow->lang('ARTICLES_RSS_FEEDS') ?>" href="<?php $plxShow->urlPostsRssFeed($plxShow->plxMotor->mode) ?>" />
        <link rel="alternate" type="application/rss+xml" title="<?php $plxShow->lang('COMMENTS_RSS_FEEDS') ?>" href="<?php $plxShow->urlRewrite('feed.php?rss/commentaires') ?>" />
    </head>
    
Connectez-vous ou Inscrivez-vous pour répondre.