- Statut : non résolu
- Ce sujet contient 9 réponses, 2 participants et a été mis à jour pour la dernière fois par Tche, le il y a 9 années et 2 mois.
-
AuteurMessages
-
20 juillet 2015 à 6 h 08 min #552101
Bonjour à toutes et à tous,
Ma configuration WP actuelle
– Version de WordPress : 4.2.2
– Version de PHP/MySQL : 5.1 (je crois)
– Thème utilisé : Twentyfourteen-child
– Extensions en place : Akismet, Better WordPress Recent Comments, Comment Popularity, NextScripts: Social Networks Auto-Poster, Contact Form 7, Subscribe to Comments Reloaded, Transposh Translation Filter…
– Nom de l’hebergeur : OVH
– Adresse du site : allwewish.orgSur notre site nous rassemblons les voeux et les solutions. Depuis 2009, j’intègre les solutions reçues via commentaires, emails, discussions ou glanées sur le web dans les articles qu’elles concernent (article=voeu). Aujourd’hui, j’étudie la possibilité d’utiliser l’outil commentaire comme un outil réel/automatique de proposition de solutions. J’ai déjà réussi à ajouter un titre au formulaire de commentaire et à afficher ce titre dans la wp_comment_list… pourtant pour pouvoir aller plus loin dans l’intégration, je devrais encore:
1. Ajouter une meta ressemblant à une catégorie aux commentaires (ex: sans argent, sans le temps, sans la santé, dans tous les cas)
Ceci ne me semble pas trop compliqué étant donné que je pourrais repartir de ma solution titre.Pour éviter la création de « catégories » farfelues, je pense également pouvoir repartir du tuto suivant pour présenter ma liste de quatre prédéfinies comme une liste déroulante:
http://www.bobz.co/dynamically-populate-select-fields-choice-in-advanced-custom-fields/2. Afficher les commentaires au bas de l’article selon cette meta « catégorie »
soit avec chaque « catégorie » affichée comme un onglet sur lequel le visiteur pourrait cliquer pour lire les solutions qui l’intéressent
soit avec tous les commentaires affichés à la suite mais classés par « catégorie » avec la « catégorie » affichée au dessus de chacune des quatre listes.Avez-vous une idée, une solution, un tuto sur comment régler cette question d’affichage?
J’ai beaucoup cherché en Français et en Anglais sans succès mais je n’ai peut-être pas cherché sur les bons mots clés…Un énorme merci d’avance pour votre aide!
Bonne journée!20 juillet 2015 à 8 h 13 min #1013434Bon, je réponds un peu à côté – ma spécialité en ce moment – mais un plugin de livre d’or (testimonial) ou un formulaire puissant – mais payant – genre Gravity Forms ne serait-il pas plus adapté ? À mon avis, ce dernier doit vous apporter tous les outils nécessaires.
20 juillet 2015 à 10 h 59 min #1013435Merci beaucoup pour votre réponse Li-An,
J’avais trouvé Burnzone forums and commenting qui me semblait assez complet, sans permettre de titrer ni de « catégoriser » les interventions.
A première vue, gravity forms pourrait le permettre mais nécessiterait d’insérer un formulaire à la fin de chaque article. Ca me semble un peu « usine à gaz », sans avoir encore regarder ce qui se passe dans les tables. Je tenterai le test demain (c’est déjà le soir où je suis) mais si quelqu’un à une solution pour mon point deux ou une autre idée de contournement… elle est vraiment la bienvenue.
A vous lire,
20 juillet 2015 à 12 h 45 min #1013436C’est carrément dans les commentaires classiques. Visiblement d’autres ont essayé mais le moteur WP n’a pas prévu ce cas de figure: http://wordpress.stackexchange.com/questions/168846/can-wordpress-comments-have-titles-and-taxonomy
24 juillet 2015 à 5 h 36 min #1013437Merci Li-An,
Après quelques soucis d’import-export de BDD chez OVH, je peux enfin travailler sur mon site tst et tenter de fusionner ces deux tuto:
http://www.smashingmagazine.com/2012/05/adding-custom-fields-in-wordpress-comment-form/http://code.tutsplus.com/tutorials/how-to-create-custom-wordpress-writemeta-boxes–wp-20336J’arrive à ce code ci pour functions.php:
/// Ajouter un titre et une catégorie aux COMMENTAIRES
//Ajouter les champs titre et catégorie au formulaire pour les users loggés et non loggés
add_action( ‘comment_form_logged_in_after’, ‘additional_fields’ );
add_action( ‘comment_form_after_fields’, ‘additional_fields’ );
function additional_fields () {
echo ‘<p class="comment-form-title">‘.
‘<label for="title">‘ . __( ‘Titre (Je peux…)’ ) . ‘</label>‘.
‘</p>‘;
echo ‘<p class="comment-form-cat">‘.
‘<label for="comment_cat">La solutions est applicable…</label>‘.
».
‘<option value="tout" >Dans tous les cas’.
‘<option value="argent" >Sans argent’.
‘<option value="temps" >Sans le temps’.
‘<option value="sante" >Sans la santé’.
‘</p>‘;
}
// Enregistrer le titre et la catégorie avec le commentaire
add_action( ‘comment_post’, ‘save_comment_meta_data’ );
function save_comment_meta_data( $comment_id ) {
if ( ( isset( $_POST[‘title’] ) ) && ( $_POST[‘title’] != ») )
$title = wp_filter_nohtml_kses($_POST[‘title’]);
add_comment_meta( $comment_id, ‘title’, $title );
if ( ( isset( $values[‘comment_cat’] ) ? esc_attr( $values[‘comment_cat’] ) : »;
add_comment_meta( $comment_id, ‘commen_cat’, $title );
}Le problème, c’est que je ne suis pas un pro et que j’ai le message d’erreur suivant:
Parse error: syntax error, unexpected »
» (T_CONSTANT_ENCAPSED_STRING) … on line 153
Sachant que la ligne 153 de mon fichier est la suivante:
echo ‘<p class="comment-form-cat">‘.
J’ai tenté plusieurs corrections proposées et trouvées sur le web jusqu’ici sans succès. Je me demande si l’un de vous verrait la correction à apporter.
Un énorme merci d’avance pour votre aide!
Bonne journée,Thierry
27 juillet 2015 à 14 h 17 min #1013438OK, le point 1 fonctionne! ( :D:D )
Je suis parti de ce tuto: http://ivetetecedor.com/how-to-use-a-drop-down-menu-for-wordpress-custom-fields/#comment-22612
et j’ai adapté mon functions.php comme ce qui suit:
/// Ajouter un titre et une catégorie (liste déroulante) aux COMMENTAIRES
//Ajouter le champs titre et la liste de catégories au formulaire pour les users loggés et non loggés
add_action( ‘comment_form_logged_in_after’, ‘additional_fields’ );
add_action( ‘comment_form_after_fields’, ‘additional_fields’ );
function additional_fields () {
echo ‘<p class="comment-form-title">‘.
‘<label for="title">‘ . __( ‘Titre (Je peux…)’ ) . ‘</label>‘.
‘</p>‘;
echo ‘<strong><label for="category">Cette solution est particulièrement utile…</label></strong>
Dans tous les cas
Sans argent
Sans le temps
Sans la santé
‘;
}
// Enregistrer le titre et la catégorie avec le commentaire
add_action( ‘comment_post’, ‘save_comment_meta_data’ );
function save_comment_meta_data( $comment_id ) {
if ( ( isset( $_POST[‘title’] ) ) && ( $_POST[‘title’] != ») )
$title = wp_filter_nohtml_kses($_POST[‘title’]);
add_comment_meta( $comment_id, ‘title’, $title );
if ( ( isset( $_POST[‘category’] ) ) && ( $_POST[‘category’] != ») )
$category = wp_filter_nohtml_kses($_POST[‘category’]);
add_comment_meta( $comment_id, ‘category’, $category );
}Résultat: la catégorie sélectionnée est bien enregistrée comme une commentmeta!
Bon maintenant il reste à trouver une façon claire d’organiser/présenter les commentaires en fonction de leur catégorie (et peut-être des votes des lecteurs?)… mais ça c’est pour demain (en espérant qu’un jour suffise//toute aide bienvenue :search: )
18 août 2015 à 4 h 27 min #1013439Bon, le point 2 fonctionne aussi et plutôt proprement!
Pour y arriver proprement, j’ai dû faire appel à un développeur sur Elance. Voici le code à insérer dans comments.php (si comme moi vous utilisez twentyfourteen-child ou un autre thème passant par ce template) ou directement dans un autre template:
‘Argent’,’Sans le temps’ => ‘Temps’ ,’Sans la santé’ => ‘Santé’ ,’Dans tous les cas’ => ‘Tous’ );
$length = count($row);
foreach($row as $key=>$value){
echo ‘<span class="emphase_roze">‘.$key.’</span>‘;
$args = array(
‘meta_key’ => ‘category’,
‘meta_value’ => $value,
‘post_id’ => get_the_ID()
);
$comments = get_comments($args);
foreach($comments as $comment) :
echo ‘<ol class="commentlist">‘;
echo ‘<h2>‘ . get_comment_meta( $comment->comment_ID, ‘title’, true ) . ‘</h2>‘;
echo ‘<h3>‘ . get_comment_meta( $comment->comment_ID, ‘category’, true ) . ‘</h3>‘;
comment_text();
echo ‘<div class="comment-meta">‘ . hmn_cp_the_comment_upvote_form();
echo ‘<div class="comment-author vcard">‘ . get_avatar( $comment, $args[‘avatar_size’] );
echo ‘Une solution proposée par ‘ . get_comment_author_link() . ‘</br>‘;
printf( __(‘%1$s at %2$s’), get_comment_date(), get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)' ), ' ', '' );
echo '</div></div>‘;
$reply_href = wp_make_link_relative(
get_permalink( $postid )
)
.’?replytocom=’ .$comment->comment_ID. ‘#respond’;
$reply_onclick = ‘return addComment.moveForm("comment-‘
. $comment->comment_ID
. ‘", "’
. $comment->comment_ID
. ‘", "respond", "’
. $postid
. ‘")’;?>
<div class="reply">
<a class="comment-reply-link custom-class" href=" » onClick= » »></a>
</div>
<?php
echo '<div class="reply">‘ . comment_reply_link( array_merge( $args, array( ‘add_below’ => $add_below, ‘depth’ => $depth, ‘max_depth’ => $args[‘max_depth’] ) ) ) . ‘</div>‘;
echo ‘</ol>‘;
endforeach;
}
wp_reset_query();
?>
<p class="no-comments"></p>
Mise en garde
Avec ceci, les commentaires s’affichent correctement et il est possible de voter pour ceux-ci (ce snippet peut planter si vous n’avez pas installé le plugin comment-popularity)… par contre il n’affiche pas les réponses… j’ai le code pour le faire. Si ça vous intéresse envoyez moi un msgEn espérant aider ou aiguiller qqn…
A bientôt,18 août 2015 à 4 h 28 min #1013440✅ (au fait)
18 août 2015 à 7 h 57 min #1013441Merci beaucoup pour tous ces retours et commentaires. Vous aurez remarqué l’absence de réponse de ma part mais j’étais complètement largué pour le coup.
18 août 2015 à 8 h 57 min #1013442Avec plaisir, en espérant que ça aide quelqu’un
A bientôt, -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.