Desativar apenas o formulário / checkbox de comentário próprio?

Estou tentando escrever uma function que esconde o próprio formulário de comentário, deixando os comentários e as contagens de comentários intactos.

Eu gostaria que o formulário de comentário fosse exibido somente quando um determinado parâmetro estiver em um URL de publicação.

Tudo o que posso encontrar é um código que desabilita todos os comentários relacionados. E eu criei um método que exigiria alguns css (dê forma a outra ID quando precisa ser escondido e depois exiba: nenhum;).

Alguém conhece um método PHP-only?

Solutions Collecting From Web of "Desativar apenas o formulário / checkbox de comentário próprio?"

A function comments_open() é usada, tanto por core e tipicamente temas para determinar status para publicação específica. Tem filtro do mesmo nome para o resultado, que você pode usar para manipulá-lo individualmente para a publicação.

comment_form() na verdade não emitirá o formulário se a verificação for falsa e comment_form_comments_closed ação de acordo com o comentário_form_comments_closed em tal caso.

Os temas nativos do WP, fornecidos com o núcleo, também são bons exemplos de construção deste cheque em modelos.

Aqui estão duas soluções que podem ser colocadas em functions.php . Eles não são realmente o que eu preciso, mas talvez eles sejam de alguma utilidade para outra pessoa.

Solução 1

Pode ser usado para fechar comentários para determinadas postagens:

 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 ); 

Solução 2

Pode ser usado para esconder o formulário de comentário por display: none; no seletor CSS #HIDEcommentform :

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