“Kategorien” für Kommentare?

Zum Beispiel hat Post einen Kommentarbereich mit 3 verschiedenen Tabs, zB Kommentare, Rezensionen und Fragen.

Ich habe es schon länger untersucht, aber ich habe keinen perfekten Plan entwickelt. Ich dachte, es ist an der Zeit, WordPress-Götter anzusprechen.


Konzept ist einfach:

------------------------------------------------------------------ 1. category link 2. category link 3. category link ------------------------------------------------------------------ Current category comments ------------------------------------------------------------------ 

Wenn auf einen der Links geklickt wird, führe (über Ajax oder nicht, Geschmackssache) eine Abfrage aus, die X- Kategorie-Kommentare erhält.

Ich habe in WP_Comment_Query () untersucht, aber ich bin nicht sicher, wie man damit umgeht . Es gibt keinen Kategorie- oder Typparameter, also dachte ich, dass Kommentar-Metas wahrscheinlich der beste Weg ist, um zu gehen.


Kategorie beim Kommentieren hinzufügen:

 //To functions.php or create a plugin add_action( 'comment_post', 'add_comment_category' ); function add_comment_category( $comment_id ) { add_comment_meta( $comment_id, 'my_comment_category', $_POST['hidden-input-category-value'] ); } 
  • Front-End ist ziemlich viel bedeckt, aber Admin-Bereich ist ganz andere Geschichte und ich bin nicht sicher, dass ich versteckte Eingabe hinzufügen sollte überall, wo Sie kommentieren können (Post-Seite bearbeiten, Kommentare Seite usw.) . Gibt es dafür eine bessere Alternative? Wie sonst könnte ich den aktuellen Kategoriewert weitergeben ?
  • Auch versteckter Input kann von gemeinen Leuten verändert werden und das System durchbrechen – überhaupt nicht gut.
  • Ich bin mir ziemlich sicher, dass ich über Ajax kommentieren sollte, damit ich mir keine Sorgen machen muss, dass beim Laden der Seite ein falscher Tab geöffnet wird.

Ausgabe des Administrationsbereichs:

Ich muss sie nicht nach Kategorien im Admin-Bereich sortieren, ich füge einfach eine neue Spalte zur Kommentarliste hinzu, die die Kategorie nur für den Fall ausgibt, vielleicht wird es Zeiten geben, wenn ich es wissen muss.


Front-End-Ausgabe:

 //Create new template for this comment system and use get_template_part() //Or add it straight to post or page template $args = array( 'post_id' => $current_post_id, 'meta_query' => array( array( 'key' => 'my_comment_category', 'value' => 'review' ) ) ); $comments = new WP_Comment_Query( $args ); //Output while( $comments->have_comments() ) { $comments->the_comment(); //Output } else { //No comments output } 

Dies ist inspiriert von meinem üblichen WP_Query() Build. Ich stelle mir vor, dass es in WordPress Konsistenz gibt und alle verschiedenen Abfrageergebnisse auf die gleiche Art und Weise geloopt werden können ( eg the_post() == the_comment() or have_posts() == have_comments() ).


  • Ich bin nicht sicher, ob das Antworten standardmäßig funktioniert
  • Ich bin nicht sicher, ob verschachtelte Kommentare standardmäßig funktionieren
  • Ich bin nicht sicher, ob es irgendwelche anderen Probleme gibt, die ich im Moment nicht sehe

Ich denke, die richtige Frage ist jetzt: Lohnt es sich? Wäre es viel schlechter als Standard- Kommentare? Irgendwelche Alternativen?


Noch Fragen oder Ideen? Gut, lass es mich wissen und ich werde die Frage aktualisieren.

Solutions Collecting From Web of "“Kategorien” für Kommentare?"

Kommentare sind in WordPress “begrenzt”. Sie haben drei verschiedene Typen für sie, da get_comment_type() schön get_comment_type() und Sie diese Liste nicht erweitern können.

Das Hinzufügen von Meta-Werten zu Ihren Kommentaren ist daher die einfachste und wahrscheinlich “am meisten standardisierte” Methode, um verschiedene “Typen” von Kommentaren unterscheiden zu können.

Die Verarbeitung der Kommentar-Ein- und -Ausgabe bleibt grundsätzlich gleich, nur dass Sie einigen von ihnen einen Metawert hinzufügen müssen. Wie Sie bereits gezeigt haben, ist dies sehr einfach.

In Bezug auf Ihre Fragen:

Ist es das wert?

Ich denke, Ihre Lösung ist der bestmögliche Weg, ohne zu viel in der database zu basteln, neue Strukturen und solche Sachen zu schaffen. Ihre Lösungen brauchen das einfach nicht. Ich mag das, weil es die Kompatibilität verbessert.

Wäre es viel schlechter als Standard-Kommentare?

Ich glaube nicht, dass es überhaupt schlechter läuft. Sie fügen im Grunde nur einen weiteren Parameter zur databaseabfrage hinzu / tun einen anderen Join und databaseen sind schnell wie die Hölle für solche Dinge. Versuchen Sie, das Caching zu implementieren, wenn Ihre Website mehr belastet wird.