Bon, j’avais un problème et je l’ai résolu. En effet, je souhaitais changer l’intitulé des commentaires sous wordpress mais, je n’avais jusque là rien trouvé. Hein? Intitulé? Oui! Vous savez le: Pas de commentaires, 1 commentaire, 2 commentaires, 3 commentaires…
Il se trouve que dans le thème, cela se trouve dans « comments.php » et la ligne est la suivante:
<?php comments_number(__(’0 commentaire’), __(’1 commentaire’), __(‘% commentaires’)); ?>
Sauf que vous pouviez rajouter autant de chose que vous vouliez, ça ne marchait pas… En fait, il va falloir modifier le code de wordpress même. Pour cela, direction votre dossier wp-includes, et éditez le fichier « comment_template.php ».
Une fois ce fichier ouvert, cherchez la ligne suivante: function comments_number( $zero = false, $one = false, $more = false, $deprecated = » )
C’est bon? Alors vous voyez tout ça:
function comments_number( $zero = false, $one = false, $more = false, $deprecated = » ) {
global $id;
$number = get_comments_number($id);if ( $number > 1 )
$output = str_replace(‘%’, number_format_i18n($number), ( false === $more ) ? __(‘% Comments’) : $more);
elseif ( $number == 0 )
$output = ( false === $zero ) ? __(‘No Comments’) : $zero;
else // must be one
$output = ( false === $one ) ? __(’1 Comment’) : $one;echo apply_filters(‘comments_number’, $output, $number);
}
Et bien on va le modifier. Par exemple, modifiez le ainsi:
function comments_number( $zero = false, $one = false, $two = false, $three = false, $more = false, $deprecated = » ) {
global $id;
$number = get_comments_number($id);if ( $number > 3 )
$output = str_replace(‘%’, number_format_i18n($number), ( false === $more ) ? __(‘% Comments’) : $more);
elseif ( $number == 0 )
$output = ( false === $zero ) ? __(‘No Comments’) : $zero;
elseif ( $number == 1 )
$output = ( false === $one ) ? __(’1 Comment’) : $one;
elseif ( $number == 2 )
$output = ( false === $two ) ? __(’2 Comments’) : $two;
elseif ( $number == 3 )
$output = (false === $three ) ? __(’3 Comments’) : $three;echo apply_filters(‘comments_number’, $output, $number);
}
Analysez bien ce nouveau code et comparez le avec l’ancien… vous voyez la différence? Ainsi, modifiez le de la même façon autant de fois que vous voulez jusqu’à obtenir le nombre d’intitulé de commentaire personnalisé voulu (ici, 3). Chose importante: vous voyez le « if ( $number > 3 )« , et bien tout nombre de commentaire supérieur à 3 se verra attribuer le « % Comments« , % étant le nombre de commentaires. N’oubliez donc pas de modifier cela, sinon, ça ne sert à rien de faire ces modifications.
Bon, ici, on s’est arrêté à 3, mais on peut continuer jusqu’à ce que l’on soit satisfait. Ensuite, dans le thème, il faut modifier comments.php. Vous aviez cela:
<?php comments_number(__(’0 commentaire’), __(’1 commentaire’), __(‘% commentaires’)); ?>
Changez le ainsi, par exemple:
<?php comments_number(__(’0 commentaire, sniff…, __(’1 commentaire! Toujours pas assez! Allez!’), __(’2 commentaires, on a que le couple là, allez, au boulot!’), __(’3 commentaires, on y arrive, doucement mais bon…’), __(‘% commentaires, enfin, on y est!’)); ?>
Remarque importante: il faut mettre autant d’intitulé personnalisé dans le thème que vous en avez mis dans le fichier comment-template.php
Voila! C’est tout! C’est facile hein
[EDIT] L’excellent Dric me faisait remarquer qu’en cas de mise à jour de wordpress, tout était perdu. Sa solution est simple: créer une fonction personnalisée dans le thème et l’appeler ensuite. Ainsi, dans le functions.php du thème, on ajoute cela:
function custum_comments_number( $zero = false, $one = false, $two = false, $three = false, $more = false, $deprecated = » ) {
global $id;
$number = get_comments_number($id);if ( $number > 3 )
$output = str_replace(‘%’, number_format_i18n($number), ( false === $more ) ? __(‘% Comments’) : $more);
elseif ( $number == 0 )
$output = ( false === $zero ) ? __(‘No Comments’) : $zero;
elseif ( $number == 1 )
$output = ( false === $one ) ? __(’1 Comment’) : $one;
elseif ( $number == 2 )
$output = ( false === $two ) ? __(’2 Comments’) : $two;
elseif ( $number == 3 )
$output = (false === $three ) ? __(’3 Comments’) : $three;echo apply_filters(‘custum_comments_number’, $output, $number);
}
On crée donc une nouvelle fonction. Pour le second code, dans le template, il suffit de remplacer comments_number par custum_comments_number. Voilou