Deaktivieren Sie nur das Kommentarformular / Box selbst?

Ich versuche, eine function zu schreiben, die das Kommentarformular selbst verbirgt, während Kommentare und Kommentare intakt bleiben.

Ich möchte, dass das Kommentarformular nur angezeigt wird, wenn sich ein bestimmter Parameter in einer Post-URL befindet.

Alles, was ich finden kann, ist Code, der alle Kommentare deaktiviert. Und ich kam mit einer Methode, die etwas css erfordern würde (geben Sie eine andere ID, wenn es versteckt werden muss und dann: none;).

Kennt jemand zufällig eine reine PHP-Methode?

Solutions Collecting From Web of "Deaktivieren Sie nur das Kommentarformular / Box selbst?"

Die function comments_open() wird sowohl von core- als auch von typischen Designs verwendet, um den Status für bestimmte Posts zu ermitteln. Es hat einen Filter mit dem gleichen Namen für das Ergebnis, mit dem Sie es individuell für den Beitrag bearbeiten können.

comment_form() wird das Formular nicht ausgeben, wenn die Prüfung falsch ist, und in diesem Fall die Aktion comment_form_comments_closed .

Native WP-Designs, die mit Core geliefert werden, sind ebenfalls gute Beispiele für die Erstellung dieser Prüfung in Vorlagen.

Hier sind zwei Lösungen, die in functions.php platziert werden functions.php . Sie sind nicht wirklich das, was ich brauche, aber vielleicht sind sie für jemand anderen von Nutzen.

Lösung 1

Kann verwendet werden, um Kommentare für bestimmte Beiträge zu schließen:

 function close_comment_form( $open, $post_id ) { $post = get_post( $post_id ); if( $post->post_type == 'post' ) { return false; } return $open; } add_filter( 'comments_open', 'close_comment_form', 10 , 2 ); 

Lösung 2

Kann verwendet werden, um das Kommentarformular über das display: none; auszublenden display: none; im CSS-Selektor #HIDEcommentform :

 function my_comment_form_defaults($defaults) { $defaults['id_form'] = 'HIDEcommentform'; return $defaults; } add_filter('comment_form_defaults', 'my_comment_form_defaults');