Dotclear, pagination et titrage des pages
15 messages
• Page 1 sur 1
-

Audiofeeline - WRInaute accro

- Messages: 5257
- Inscription: 20 Oct 2005
Dotclear, pagination et titrage des pages
Bonjour à tous,
j'utilise DC sur mon site ziik.fr mais voilà j'utilise la pagination qui est très pratique mais génère me semble-t-il du duplicate (même titre sur toutes ces pages) du coup j'ai pas mal d'articles qui se sont désindexés (j'ai pourtant un sitemap).
Auriez-vous une idée pour coder un truc qui m'afficherait le numéro de la page dans ma balise title ?
Merci.
j'utilise DC sur mon site ziik.fr mais voilà j'utilise la pagination qui est très pratique mais génère me semble-t-il du duplicate (même titre sur toutes ces pages) du coup j'ai pas mal d'articles qui se sont désindexés (j'ai pourtant un sitemap).
Auriez-vous une idée pour coder un truc qui m'afficherait le numéro de la page dans ma balise title ?
Merci.
-

cedric_g - WRInaute accro

- Messages: 3552
- Inscription: 18 Jan 2006
Bonjour
Je n'ai à priori pas ce soucis... Le contenu de chaque page change trop souvent de mon côté (je pense ; je tâche de publier 2 à 4 articles par semaine) ; de toute façon il est peut-être préférable de ne pas indexer ces pages, justement (balise META Robots à "noindex,follow") ; je ne l'ai pas fait pour ma part.
Tu veux faire quoi dans le titre : rajouter le n° de page ? Je ne suis pas sûr que cela servira à quelque chose
Pour ma part j'ai ajouté un nuage de tags et optimisé le code pour le title et les balises description et keywords à partir de ça (en plus des catégories et de ma page "table des matières", autre plugin sympa...) ; cf artice dans WRI
Me suis rendu compte hier que mes nouveaux articles sont indexés en moins de 3 heures
Je n'ai à priori pas ce soucis... Le contenu de chaque page change trop souvent de mon côté (je pense ; je tâche de publier 2 à 4 articles par semaine) ; de toute façon il est peut-être préférable de ne pas indexer ces pages, justement (balise META Robots à "noindex,follow") ; je ne l'ai pas fait pour ma part.
Tu veux faire quoi dans le titre : rajouter le n° de page ? Je ne suis pas sûr que cela servira à quelque chose
Pour ma part j'ai ajouté un nuage de tags et optimisé le code pour le title et les balises description et keywords à partir de ça (en plus des catégories et de ma page "table des matières", autre plugin sympa...) ; cf artice dans WRI
Me suis rendu compte hier que mes nouveaux articles sont indexés en moins de 3 heures
-

Audiofeeline - WRInaute accro

- Messages: 5257
- Inscription: 20 Oct 2005
Le soucis c'est que certains de mes vieux articles sont désindexés.
Je ne sais pas trop quoi faire.
Je ne sais pas trop quoi faire.
-

Audiofeeline - WRInaute accro

- Messages: 5257
- Inscription: 20 Oct 2005
Je précise aussi que je suis sous la 1.2.x 
- djoh
- WRInaute discret

- Messages: 94
- Inscription: 1 Fév 2008
Bonjour,
Je viens moi aussi d'installer le plugin pagination, mais je m'inquiète du duplicate content.
Avez-vous trouver une solution, et si oui, laquelle ?
Comme j'ai une génération des meta suivant le mode, j'ai d'abord mis un noindex,follow sur les pages pagination. Sauf que la page d'accueil est elle aussi en mode pagination, et c'est pourtant bien celle là que je veux indexer la première.
Il y a donc la solution du robots.txt.
Sauf que !
un disallow : Disallow: /blog/?p*
arrêtera aussi les pages dont l'url commence par P.
Une solution ?
Je viens moi aussi d'installer le plugin pagination, mais je m'inquiète du duplicate content.
Avez-vous trouver une solution, et si oui, laquelle ?
Comme j'ai une génération des meta suivant le mode, j'ai d'abord mis un noindex,follow sur les pages pagination. Sauf que la page d'accueil est elle aussi en mode pagination, et c'est pourtant bien celle là que je veux indexer la première.
Il y a donc la solution du robots.txt.
Sauf que !
un disallow : Disallow: /blog/?p*
arrêtera aussi les pages dont l'url commence par P.
Une solution ?
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
djoh a écrit:Bonjour,
Je viens moi aussi d'installer le plugin pagination, mais je m'inquiète du duplicate content.
Avez-vous trouver une solution, et si oui, laquelle ?
Comme j'ai une génération des meta suivant le mode, j'ai d'abord mis un noindex,follow sur les pages pagination. Sauf que la page d'accueil est elle aussi en mode pagination, et c'est pourtant bien celle là que je veux indexer la première.
Il y a donc la solution du robots.txt.
Sauf que !
un disallow : Disallow: /blog/?p*
arrêtera aussi les pages dont l'url commence par P.
Une solution ?
1) Modifier le titre des pages quand tu es en mode pagination (sauf dans le cas de la page 1)
2) rediriger via htaccess la page 1 de pagination sur la page d'accueil du blog
Tout ce que j'aspire à faire sur mon blog dès que j'en aurai le temps.
- djoh
- WRInaute discret

- Messages: 94
- Inscription: 1 Fév 2008
Je trouve la méthode un peu tordue...
Est-ce qu'il ne serait pas plus facile de donner un autre nom que "p" aux pages de pagination, comme "billets-plus-anciens" ?
exemple :
djoh.net/blog/?p2
djoh.net/blog/?billets-plus-anciens
Et dans ces cas-là, le robots.txt devient beaucoup plus facile à écrire ...
Je mets le nez dans le code du plugin, mais pour l'instant je suis perdu...
Tu as un avis concernant cette idée ?
Est-ce qu'il ne serait pas plus facile de donner un autre nom que "p" aux pages de pagination, comme "billets-plus-anciens" ?
exemple :
djoh.net/blog/?p2
djoh.net/blog/?billets-plus-anciens
Et dans ces cas-là, le robots.txt devient beaucoup plus facile à écrire ...
Je mets le nez dans le code du plugin, mais pour l'instant je suis perdu...
Tu as un avis concernant cette idée ?
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
djoh a écrit:Je trouve la méthode un peu tordue...
Est-ce qu'il ne serait pas plus facile de donner un autre nom que "p" aux pages de pagination, comme "billets-plus-anciens" ?
exemple :
djoh.net/blog/?p2
djoh.net/blog/?billets-plus-anciens
Et dans ces cas-là, le robots.txt devient beaucoup plus facile à écrire ...
Je mets le nez dans le code du plugin, mais pour l'instant je suis perdu...
Tu as un avis concernant cette idée ?
Je suis pas super fan. La modif que je propose à pour côté positif de moins toucher au moteur de DC (du plugin pagination en fait ici), car l'ensemble des modifs se fait directement via le template où via ajout de ligne dans le htaccess.
- Stefano
- WRInaute occasionnel

- Messages: 273
- Inscription: 12 Fév 2006
Bonjour,
Je me greffe sur ce vieux sujet car je voudrais faire exactement ceci ajouter donc un simple page 2/ page 3... aux page suivantes. Est-ce que vous y êtes parvenus ?
Merci de vos réponses.
Stefano
Modifier le titre des pages quand tu es en mode pagination (sauf dans le cas de la page 1)
Je me greffe sur ce vieux sujet car je voudrais faire exactement ceci ajouter donc un simple page 2/ page 3... aux page suivantes. Est-ce que vous y êtes parvenus ?
Merci de vos réponses.
Stefano
- djoh
- WRInaute discret

- Messages: 94
- Inscription: 1 Fév 2008
C'est pas hyper la classe au niveau coding, mais ca marche. Et GWT apprecie.
Dans prepend.php
Dans template.php
Et le geniallissime header-perso.php
Tout ca, c'est inspire des conseils de WRI et egalement de l'Ajblog.
Et Vive dotclear. Vive moi.
Dans prepend.php
- Code: Tout sélectionner
function dcHeadLinks2(){
global $blog, $cat_id, $rs_cat;
if (!$rs_cat->isEmpty() && !$cat_id)
{
while (!$rs_cat->EOF())
{
if ($rs_cat->f('nb_post') > 0)
{
$id = $rs_cat->f('cat_libelle_url');
$libelle = $rs_cat->f('cat_libelle');
$lien = sprintf($blog->front_url['cat'],$id);
}
$rs_cat->moveNext();
}
$rs_cat->moveStart();
}
$arry_months = $GLOBALS['arry_months'];
$comp_url = '';
if ($cat_id) {
$comp_url = $cat_id.'/';
}
foreach ($arry_months as $ts => $d)
{
$titre = dt::str('%B %Y',$ts);
$url = sprintf($blog->front_url['archive'],$comp_url.date('Y',$ts),date('m',$ts));
#echo '<link rel="archive" href="'.$url.'" title="'.$titre.'" />'."\n";
}
if ($GLOBALS['mode'] == 'home')
{
echo $GLOBALS['news']->getHeadLinks();
}
}
Dans template.php
- Code: Tout sélectionner
<head>
<?php include('themes/default/header-perso.php');?>
<link rel="stylesheet" type="text/css" href="<?php dcInfo('theme'); ?>/style.css" media="screen" />
<?php dcHeadLinks2(); ?>
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<meta name="DC.title" content="ton-Title" />
<link rel="shortcut icon" href="<?php dcInfo('theme'); ?>/images/favicon.ico" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feedproxy.google.com/ton-flux" />
<link rel="alternate" type="application/xml" title="Atom" href="http://feedproxy.google.com/ton-flux" />
</head>
Et le geniallissime header-perso.php
- Code: Tout sélectionner
<?php
// Fonction permettant de retourner les x premiers mots d'un texte
function s_premiersmots($MyString,$nbmots,$separ){
$StringTab=explode(" ",$MyString);
for($i=0;$i<$nbmots;$i++)
$NewString.=$separ."$StringTab[$i]";
return $NewString;
}
// Fonction de nettoyage de chaine de caractere (code pas nickel mais ca fonctionne !)
function s_nettoyerpourkeywords($MyString){
$NewString=trim($MyString);
$NewString=str_replace(array('(', ')', '!', '?', '+', '...', '"', '[',']', ':', '"', ','), array('', '', '', '', '', '', '', '', '', '', '', ''), $NewString);
$NewString=str_replace(array('/','.','-'),array(' ',' ',' '),$NewString);
$NewString=str_replace(array(' ',' '),array(' ',' '),$NewString);
$NewString=str_replace(' ',',',$NewString);
$NewString=str_replace(',,',',',$NewString);
return $NewString;
}
// Recuperation du titre complet normal affiche par defaut par Dotclear
ob_start();
dcSinglePostTitle('%s - ');dcSingleCatTitle('%s - ');dcSingleMonthTitle('%s - ');dcCustomTitle('%s - ');dcInfo();
$TitreComplet = strip_tags(ob_get_contents());
ob_end_clean();
// Recuperation du titre du billet seulement (sera vide si l'on n'affiche pas un billet seul)
ob_start();
dcSinglePostTitle('%s');
$TitreDuBillet = trim(strip_tags(ob_get_contents()));
ob_end_clean();
if($mode != 'tocHome'){
// Recuperation des 40 premiers mots du chapo
ob_start();
dcPostChapo();
$DebutDuBillet = trim(s_premiersmots(trim(str_replace('"', '', strip_tags(ob_get_contents()))), 40, ' '));
ob_end_clean();
if(strlen($DebutDuBillet)==0){
// Le chapo est vide, donc recuperation du debut du contenu du billet (le cas echeant), soit les 40 premiers mots
ob_start();
dcPostContent(40); // Une surcharge de la methode dcPostContent permet de recuperer le nombre de mots specifie : bien pratique !
$DebutDuBillet = trim(str_replace('"','',strip_tags(ob_get_contents())));
ob_end_clean();
}
}
########## Gestion du plugin Tags : recupeation du tag en cours, le cas echeant
ob_start();
twTags::title();
$TagEnCours = trim(strip_tags(ob_get_contents()));
ob_end_clean();
########## Definition des differentes balises dediees SEO
if(strlen($TitreDuBillet)>0){
// On definit la balise Titre par le titre du billet en cours (si billet en cours il y a !)
$BaliseTitre=$TitreDuBillet . " - Djoh En Inde !";
if(strlen($DebutDuBillet)>0){
// Definition de la balise Description par le contenu du billet (25 premiers mots du chapo, ou du billet, selon cas)
$BaliseDescription=$TitreDuBillet." - ".$DebutDuBillet."...";
} else {
// Gestion des billets "vides" de texte
$BaliseDescription=$TitreDuBillet;
};
$BaliseKeywords=(strlen($TagEnCours)>0?"tag,":"") . s_nettoyerpourkeywords($BaliseDescription);
} else {
// On n'est pas dans un billet, donc gestion de l'unicit? du titre et de la description (qui seront identiques) avec prise en charge des tags
$BaliseTitre=(strlen($TagEnCours)>0?"$TagEnCours - ":"").$TitreComplet;
$BaliseDescription="La tu fais une super description, genre pas que des keywords";
$BaliseKeywords="et, la, une, vraie, liste, de, keywords";
};
if($mode == 'tocHome'){
$BaliseTitre = "Table des matieres";
$BaliseDescription = "Tous les articles, toutes les archives. C est le grenier du blog !";
$BaliseKeywords = "grenier, blog, tout ca, tout ca";
}
$BaliseRobots="<meta name=\"robots\" content=\"";
$pageSuivante = false;
$currentURL = $_SERVER['REQUEST_URI'];
if($mode== 'pagination' ){
if (($dc_orig_mode == 'month')||($dc_orig_mode == 'day')||($dc_orig_mode == 'search')||($dc_orig_mode == 'cat')) {
$BaliseRobots .= "index,follow\" />";
}
else {
$i=0;
while($i++ < 10){
$needle="p" . $i;
if(strpos($currentURL, $needle)) {
$BaliseRobots .= "index,follow\" />";
$pageSuivante = true;
break;
}
}
if(!($pageSuivante)){
$BaliseRobots .= "index,follow\" />";
}
}
}
else { $BaliseRobots .= "index,follow\" />";
}
if( strpos($currentURL, "tag") || strpos($currentURL, "2006") || strpos($currentURL, "2007") || strpos($currentURL, "2008") || ($err_msg != '') ) $BaliseRobots = '<meta name="robots" content="noindex,follow" />';
for($i=1;$i<10;$i++){
if(strpos($currentURL, "p".$i)) {
$BaliseTitre = $BaliseTitre . " - page " . substr($currentURL, 8, 15) ;
$BaliseDescription = "Page " . substr($currentURL, 8, 15) . " - " . $BaliseDescription;
}
}
########## Ecriture des balises ##########
// écriture de la balise TITLE
echo "
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
<title>$BaliseTitre</title>
<meta name=\"description\" lang=\"fr\" content=\"$BaliseDescription\" />
<meta name=\"keywords\" lang=\"fr\" content=\"$BaliseKeywords\" />
$BaliseRobots
";
echo dcPostNext(1,'<link rel="next" href="%3$s" title="%2$s" />'."\n");
echo dcPostNext(-1,' <link rel="previous" href="%3$s" title="%2$s" />'."\n");
?>
Tout ca, c'est inspire des conseils de WRI et egalement de l'Ajblog.
Et Vive dotclear. Vive moi.
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Perso j'ai fait ça uniquement en me basant sur le test suivant dans template.php :
- Code: Tout sélectionner
if (isset($GLOBALS['pagination_current']) && ($GLOBALS['pagination_current']>1))
{
15 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Consultez la description détaillée des produits ou services de Google suivants : Le sous-titrage professionnel YouTube Ready
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

