Ganchos de template para a seção "Join Discussion Link" do plugin Discourse?

Vejo onde posso alterar o texto do link em si quando a opção ‘Link para Comentários Sem Exibi-los’ é selecionada, mas há alguma maneira de adicionar texto/html acima/abaixo deste link? Algo como o filtro discourse_replies_html, mas para alterar o que está dentro da div .wpdc-join-discussion e onde o Link de Participar da Discussão iria nela.

Olá Kayla, atualmente não há filtro ou modelo para alterar o HTML na div wpdc-join-discussion. Você poderia compartilhar o resultado desejado, ou seja, com qual HTML você gostaria de terminar? Verei se consigo adicionar um filtro para dar suporte ao seu caso de uso (e talvez a outros).

Olá Angus,

O caso de uso é para o mesmo site de

então há comentários privados do Discourse ao lado dos comentários públicos do Wordpress em um site que usa um tema clássico. Eu gostaria de poder adicionar um título e uma explicação em texto acima do link “Join Discussion” para contexto/experiência do usuário. Eu consigo simular visualmente com uma área de widget theme-default que vem após a entrada do post e um monte de CSS, mas não é ideal em termos de estrutura do documento (neste caso, o widget é captado como parte do artigo na visualização/modo leitor, enquanto a div .wpdc-join-discussion real não é). Eu poderia criar uma nova área de widget que fica fora da camada do artigo, mas essa personalização logicamente pertence à div .wpdc-join-discussion junto com o link “Join Discussion”.

Ok, obrigado, verei o suporte a este caso de uso na próxima versão.

1 curtida

Obrigado pela consideração! Eu preferiria um tipo de solução aberta como discourse_replies_html para que eu pudesse ter a flexibilidade de adicionar um div “wrapper” interno dentro de .wpdc-join-discussion ou qualquer outra coisa que seja necessária no futuro. Espero que isso também simplifique o desenvolvimento do plugin (sem novas configurações na interface de administração).

1 curtida

@Kayla Em breve será hora de lançar outra versão do plugin e quero ter certeza de que estou atendendo ao seu caso. Estou pensando em adicionar um filtro wpdc_join_discussion_link_html aqui

$link_html = '<div class="wpdc-join-discussion"><a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '"' . $new_tab . '>' . esc_html( $link_text ) . '</a></div>';
$link_html = apply_filters( 'wpdc_join_discussion_link_html', $link_html, $comments_count, $post_id );
return $link_html;

Isso desempenharia o mesmo papel que o filtro discourse_replies_html, mas para o HTML do link.
Isso funciona para você?

Sim, acho que sim. Só para eu ter certeza, porque meu conhecimento de PHP é apenas o suficiente para pegar um padrão/exemplo e seguir em frente, eu poderia usar este filtro assim?

function custom_discussion_link( $input ) {  
  ob_start();
  ?>
  <div class="wpdc-join-discussion">
    <div class="custom-wrapper-div">
      <h3>Heading</h3>
      <p>Explanation/context yada yada.</p>
      <?php echo '<a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '"' . $new_tab . '>' . esc_html( $link_text ) . '</a>'; ?>
    </div>
  </div>
  <?php
  $link_html = ob_get_clean();
  return $link_html;
}
add_filter( 'wpdc_join_discussion_link_html', 'custom_discussion_link' );

Espero que não esteja hilariantemente errado. :face_with_peeking_eye:

Ok, então acho que precisarei garantir que você tenha as variáveis que está interpolando lá, o que faz sentido para este filtro, ou seja,

apply_filters( 'wpdc_join_discussion_link_html', $link_html, $discourse_permalink, $new_tab, $link_text )

Que você então usaria assim (note o número de argumentos)

function custom_discussion_link( $link_html, $discourse_permalink, $new_tab, $link_text) {
  ob_start();
  ?>

  <div class="wpdc-join-discussion">
    <div class="custom-wrapper-div">
      <h3>Heading</h3>
      <p>Explanation/context yada yada.</p>
      <?php echo '<a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '"' . $new_tab . '>' . esc_html( $link_text ) . '</a>'; ?>
    </div>
  </div>

  <?php
  $link_html = ob_get_clean();
  return $link_html;
}
add_filter( 'wpdc_join_discussion_link_html', 'custom_discussion_link', 10, 4 );

Esse novo filtro estará na próxima versão. Haverá um pequeno atraso no lançamento devido a alguns imprevistos logísticos, então a próxima versão chegará no início de outubro.

1 curtida

Muito obrigado! Ficarei atento ao próximo lançamento. :partying_face:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.