Eviter le Duplicate Content sur Wordpress 2.7

L’outils Wordpress est formidable, notamment cette version 2.7 qui véritablement changé l’administration.
Cette version 2.7 possède aussi quelques petits bugs de contenu dupliqué.

Eviter le Duplicate Content avec les Pages de commentaires

Wordpress 2.7 propose de séparer les commentaires sur plusieurs pages, agréable pour la lecture d’une page avec la création d’une page :

http://www.alexandreval.info/cv/blablablabla/comment-page-X

Cette page faisant référence à

http://www.alexandreval.info/cv/blablablabla/

Il se produit alors un duplicate content sur les pages de commentaires. C’est pas très bon pour le référencement, Google n’aime pas cela, alors mieux vaut être gentil avec GG et lui fournir une page “propre”. Pour éviter ce contenu dupliqué, il suffit de rajouter cette petite fonction dans votre page function.php (située dans votre dossier wp-content/theme/NOM_DU_THEME/ :

function noindexoncommentinwp(){
global $wp_query;
if (version_compare( (float) get_bloginfo(’version’), 2.7, ‘>=’) ){
if ($wp_query->is_singular && get_option(’page_comments’)){
if (isset($wp_query->query['cpage'])
&& absint($wp_query->query['cpage']) >= 1 ){

echo ‘<meta name=”robots” content=”noindex” />’.PHP_EOL;
}
}
}
}

add_action(’wp_head’,'noindexoncommentinwp’);

Cette fonction rajoutera une balise meta no follow pour indiquer aux moteurs de ne pas indexer cette page ;)

Eviter le Duplicate Content avec les Multi Page

Comme pour les commentaires, les pages multiples pour un article créent du contenu dupliqué, on peut alors créer une fonction qui va ajouter la même balise que dans la fonction au dessus.

function noindexinwp(){
global $wp_query;
if(is_single && $wp_query->query[page]) echo “\t”.’<meta name=”robots” content=”noindex,follow” />’.”\n”;
}
add_action(’wp_head’, ‘noindexinwp’, 1);

Avec cela, vous êtes parés pour recevoir les félicitations de notre ami Google ;)

Article rédigé d’après la trouvaille de NWE, et de l’astuce découverte par Julien.

Fonction PHP retournant une Liste déroulante / Multi-Select

Suite à un billet d’un collègue développeur (Jarodxxx), et d’un commentaire souhaitant obtenir un return, je vous propose quelques fonctions très utiles que j’utilise.

1 - Fonction qui retourne une liste déroulante (SELECT, ComboBox) :

  1. /*fonction qui fabrique une combobox
  2. parametres :
  3. $tabs => $tableau qui contient les données a mettre dans la combo
  4. $value => champ utiliser comme value
  5. $text => champ a utiliser comme text
  6. $comboname => nom a donner a la combo
  7. $inserblank => boolean qui dit si on doit inserer une ligne blanche au debut de la combo
  8. $selectedValue => valeur a selectionner dans la combo
  9. $onChangeEvent => fonction javascript a appeler sur l’event ‘onChange’
  10. $disabled => desactiver ou non la liste*/
  11.  
  12. function makeComboBox($tabs, $value, $text, $comboname, $insertblank=false, $selectedValue=false, $onChangeEvent=, $disabled=false)
  13. {
  14.                   /*par defaut, combo "vide" */
  15.                     $return = ‘<select name="’.$comboname.‘" id="’.$comboname.‘" disabled="disabled"><option value="">Empty list</option></select>’;
  16.                     if (count($tabs[0]) > 0)
  17.                     {
  18.                               $return = ‘<select name="’.$comboname.‘" id="’.$comboname.‘"’;
  19.                               if ($onChangeEvent != )
  20.                                         $return .= ‘ onChange="’.$onChangeEvent.‘"’;
  21.                               if ($disabled)
  22.                                         $return .= ‘ disabled="disabled"’;
  23.                               $return .= ‘>’;
  24.  
  25.                               if ($insertblank)
  26.                                         $return .= ‘<option value=""></option>’;
  27.  
  28.                               foreach($tabs as $tab){
  29.                               //for ($i=0; $i<count($tab); $i++){
  30.  
  31.                                         $return .= ‘<option value="’.$tab[$value].‘"’;
  32.                                         if ($selectedValue!=false)
  33.                                                   if ($tab[$value] == $selectedValue)
  34.                                                             $return .= ‘ selected="selected"’;
  35.                                         $return .= ‘>’.$tab[$text].‘</option>’."\n";
  36.                               }
  37.                               $return .= ‘</select>’;
  38.                     }
  39.                     return $return;
  40. }
  41.  

2 - Fonction qui retourne un Multi Select : Liste déroulante avec plusieurs choix possibles:

  1. /*Gestion des combos a selection multiples
  2. parametres :
  3. $tab => $tableau qui contient les données a mettre dans la combo
  4. $value => champ utiliser comme value
  5. $text => champ a utiliser comme text
  6. $comboname => nom a donner a la combo
  7. $inserblank => boolean qui dit si on doit inserer une ligne blanche au debut de la combo
  8. $selectedValue => valeur a selectionner dans la combo
  9. $onChangeEvent => fonction javascript a appeler sur l’event ‘onChange’
  10. $disabled => desactiver ou non la liste
  11. $size => Nombre d’élément de la liste que l’on affiche
  12. */
  13. function makeMultipleComboBox($tab, $value, $text, $comboname, $insertblank=false, $selectedValue, $onChangeEvent=, $disabled=false, $size=5)
  14. {
  15. /*on recupere une combo normale, sans rien selectionner*/
  16. $return = $this->makeComboBox($tab, $value, $text, $comboname, $insertblank, -1, $onChangeEvent, $disabled);
  17. /*On change le type de combo*/
  18. $return = str_replace(‘<select ‘, ‘<select multiple size="’.$size.‘" ‘, $return);
  19. /*on parse le code html pour rajouter les selections la ou il faut*/
  20. if (!empty($selectedValue))
  21. {
  22. //print_r($selectedValue);exit;
  23. //$tSelectedValue = split(’,', $selectedValue);
  24. foreach ($selectedValue as $cur)
  25. {
  26. $return = str_replace(‘<option value="’.$cur.‘">’, ‘<option value="’.$cur.‘" selected="selected">’, $return);
  27. }
  28. }
  29. return $return;
  30. }
  31.  

2 fonctions très utiles donc qui génèrent le code HTML.

(PHP) Mettre des majuscules aux premières lettres

Je commence à vous montrer quelques scripts et astuces pour améliorer vos codes (PHP).
Une petite astuce toute simple pour mettre des majuscules à tous vos mots d’une chaîne de caractères. La fonction ucwords(); de php le permet , exemple :

$chaine = ‘alexandre val developpeur web’;
echo ucwords($chaine);

Ce qui affichera :

Alexandre Val Developpeur Web

Attention : la fonction ne comprend pas les ‘-’, ‘_’ ‘(’ devant les lettres. ce qui fait qu’une phrase comme celle-ci :

echo ucwords(’alexandre val (developpeur web)’);

affichera :

Alexandre Val (developpeur Web)

N’oubliez pas les fonction pour tout réduire en minuscule : strtolower(); et en majuscule : strtoupper();
strtolower(), que l’on peut combiner avec ucwords() pour formatter le texte, exemple :

$chaine = ALEXANDRE VAL DEVELOPPEUR WEB’;
echo ucwords(strtolower($chaine));

Affichera :

Alexandre Val Developpeur Web