web-dev-qa-db-fra.com

Changer l'ordre des champs de commentaires

Existe-t-il un moyen d’afficher d’abord le champ de commentaire, puis les champs Nom/Email/Site Web? j'utilise

<?php comment_form( ); ?>

dans mon thème. Je ne cherche pas de solution CSS.

1
Florian

Une mise en œuvre lâche de l'endroit où je commencerais. Les hooks 'comment_form_default_fields', 'comment_form_defaults' et les hooks 'comment_form_{location}' semblent prometteurs. La ligne 1569 de comment-template.php est en train de faire les champs, et la ligne 1575 est en train de faire le corps Beaucoup de bricolage et de temps pour devenir parfait, CSS est probablement la meilleure façon de faire, malheureusement.

0
mor7ifer

Bien que ce ne soit peut-être pas la façon la plus conseillée d'utiliser Wordpress, je ne trouvais pas d'autre solution.

Je suis allé chercher l'endroit où le formulaire de commentaire réel est rendu. Je l'ai trouvé dans:

/wp-includes/comment-template.php

Rechercher:

function comment_form(...

C'est la fonction qui crée le formulaire de commentaire et applique tous les filtres que vous pourriez définir.

Donc, je me suis contenté de copier cette fonction dans mon thème functions.php et de le renommer en quelque chose de différent, tel que:

function mytheme_comment_form(...

Ensuite, dans mon modèle, j'appelle <?php mytheme_comment_form() ?>

Avec ma propre fonction, je peux changer les champs comme je les veux.

Plus je jouais avec comment_form() moins je pouvais vraiment en comprendre l’intérêt. Avoir tout le formulaire html dans comments.php comme il l'était à l'origine semblait juste plus intelligent pour ce cas car je pouvais facilement déplacer les choses comme je le voulais et ça me faisait me sentir un peu moins sale que de faire ce qui précède :)

Quoi qu'il en soit, c'est une solution possible, aucune idée si cela finirait par casser quelque chose, mais je pense que c'est assez solide et je vais courir avec!

1
Ben

Vous devriez changer la ligne wp_list_comments en ceci:

<?php wp_list_comments('reverse_top_level=DESC'); ?>

Ceci pourrait également être contrôlé depuis: Administration> Paramètres> Discussion

0
Sagive SEO