Problemas al configurar comentarios ajax

Capturas de pantalla:






Aquí hay un extracto de los errores repetidos en los registros:

[2022-04-16 00:08:52] comment_formatter.ERROR: format.missing_post_data {"keys":"discourse_permalink,discourse_comments_raw"} 
[2022-04-16 00:09:06] comment_formatter.ERROR: format.missing_post_data {"keys":"discourse_permalink,discourse_comments_raw"} 
[2022-04-16 00:09:08] comment_formatter.ERROR: format.missing_post_data {"keys":"discourse_permalink,discourse_comments_raw"} 
[2022-04-16 00:09:50] comment_formatter.ERROR: format.missing_post_data {"keys":"discourse_permalink,discourse_comments_raw"}

Cuando creo una nueva publicación, funciona y se crea el tema. Sin embargo, cuando se hace un comentario en Discourse, no se sincroniza con WordPress.

No he cambiado mucho, puedes ver la configuración arriba. ¿Alguna idea de lo que estoy haciendo mal o simplemente me estoy perdiendo?

Seguí las guías aquí:

editar:
Tengo este mismo error, pero en los foros, este fue el único resultado de búsqueda para:
comment_formatter.ERROR: format.missing_post_data

¿Es este un problema conocido? ¿O se puede solucionar?

1 me gusta

Hola,

  1. Si es posible, ¿podrías enlazarme a una publicación en tu sitio de Wordpress donde estás viendo el problema?
  2. ¿Hay alguna razón por la que estés usando comentarios ajax? (tienes marcada la opción “Cargar comentarios con Ajax”).
1 me gusta

Hola Angus,

  1. Sí, claro: 60 Linux Networking commands and scripts (esa es la única publicación sincronizada por ahora)
  2. Revisé Ajax solo como último recurso después de horas de que las cosas no funcionaran completamente. Ahora he desmarcado ajax. Supongo que sin webhooks, el intervalo para la sincronización tardó un tiempo.

Parece que ahora funciona, pero el formato es un poco ineficiente. ¿Supongo que tengo que averiguar CSS?

Además, ¿hay alguna forma de mostrar los enlaces del tipo “únete a la discusión” a la página de inicio de nuestro foro de Discourse para las publicaciones antiguas del blog de WordPress? En otras palabras, si no hay comentarios en una publicación, o si la publicación no se ha sincronizado previamente con Discourse, entonces el plugin agregará un enlace general a la página de inicio de mi foro de Discourse en lugar de dejarla en blanco.

Muchas gracias por tu ayuda.

1 me gusta

Sí, cómo se muestra dependerá de tu tema. Hay un estilo mínimo en el propio plugin.

El enlace “únete a la discusión” no aparecerá en los temas que no estén enlazados. Puedes añadir algo como esto tú mismo, por separado del plugin, utilizando el filtro comments_template en el archivo functions.php de tu tema. No he probado este código, pero algo como esto funcionará:

use WPDiscourse\Utilities\Utilities as DiscourseUtilities;

function non_discourse_comments_template( $comment_template ) {
   global $post;
   $post_id = $post->ID;
   $discourse_post_id = get_post_meta( $post_id, 'discourse_post_id', true );

   if ($discourse_post_id) {
     return;
   } else {
     $options = DiscourseUtilities::get_options();
     $discourse_permalink = $options['url'];
     $link_text = "Únete a la Discusión";
     return '<div class="wpdc-join-discussion"><a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '" target="_blank" rel="noreferrer noopener">' . esc_html( $link_text ) . '</a></div>';
   }
}
add_filter( "comments_template", "non_discourse_comments_template" );
2 Me gusta

4 publicaciones se dividieron en un nuevo tema: Errores del formateador de comentarios en los registros

¡Gracias de nuevo por la ayuda y la orientación adicionales!

He estado leyendo y buscando CSS para pegar que mejore el diseño, aunque sea un poco.

Sin embargo, como no estoy familiarizado con CSS/estilos (aparte de pegar CSS existente), me gustaría hacer modificaciones muy básicas al estilo de los comentarios importados. En concreto, usar imágenes de avatar más pequeñas junto a los nombres de usuario de Discourse en los comentarios y añadir una línea horizontal entre las publicaciones:
image

¿Es algo lo suficientemente simple como para que pueda pegar algún código en /admin/customize/themes/1/common/scss/edit?

Edición:
Para cualquier otra persona, pude resolver el redimensionamiento de gravatar usando el código aquí:

2 Me gusta

Pude estilizar los comentarios. Mi estilo era muy básico, jeje… pero es una mejora.

Lo único que queda por hacer es eliminar la lista de participantes en la parte inferior de la sección de comentarios importados de WP-Discourse.

No puedo usar este código porque genera un error debido al uso de “self”. ¿Hay alguna solución alternativa?

ob_start();
?>
<div id="comments" class="comments-area discourse-comments-area">
<div class="comments-title-wrap">
<h2 class="comments-title discourse-comments-title"><?php echo esc_html( self::get_text_options( 'notable-replies-text' ) ); ?></h2>
</div>
<ol class="comment-list">{comments}</ol>
<div class="respond comment-respond">
<h3 id="reply-title" class="comment-reply-title">
<?php echo esc_html( self::get_text_options( 'continue-discussion-text' ) . ' ' ); ?>
<?php self::discourse_topic_link( self::new_tab() ); ?>
</h3>
<p class="more-replies">{more_replies}</p>
</div>
</div>
<?php
$output = ob_get_clean();

Eliminé estas líneas:

<div class="comment-reply-title">
<h4 class="discourse-participants"><?php echo esc_html( self::get_text_options( 'participants-text' ) ); ?></h4>
<p>{participants}</p>
</div>

Sin embargo, el error de sintaxis “self” no estoy seguro de cómo resolverlo. Especialmente estas líneas:

<?php echo esc_html( self::get_text_options( 'continue-discussion-text' ) . ' ' ); ?>
<?php self::discourse_topic_link( self::new_tab() ); ?>

No eliminé la sección de participantes. Si estás pensando en hacerlo, dale una oportunidad, como a otras funciones de Discourse; los desarrolladores han reflexionado sobre ello. Muestra a todos los participantes incluso después de que solo se hayan importado 5 de 15 publicaciones. (configuración modificable) Además, las respuestas importadas excluyen las publicaciones de los miembros del foro de nivel 0. Lo cual me parece útil.

En resumen, con el tiempo, he notado que no siempre la lista de participantes y los comentarios importados serán idénticos. En muchos casos, ayuda a ofrecer al lector del blog una visión más precisa del nivel de actividad de los comentarios sin tener que importar todas las publicaciones o arriesgarse a importar publicaciones de los primeros miembros registrados. (lo que creo que también se puede cambiar en la configuración)

2 Me gusta

Creo que comment_formatter.ERROR: format.missing_post_data está informando demasiado pronto. Ajustaré eso para la próxima versión. Gracias por dar seguimiento al respecto. No te preocupes por eso por ahora, a menos que estés experimentando un problema visible.

No existe una guía formal sobre el estilo de los comentarios. Hay algunos otros temas, por ejemplo, este. Los temas de WordPress vienen en tantas formas y tamaños que inicialmente se pensó en dejar esto al administrador del sitio. Dicho esto, creo que algunas guías adicionales podrían ser útiles.

Lo he puesto en mi lista para agregarlo a las guías de WP Discourse. No lo publicaré hasta dentro de unas semanas, pero si te quedas atascado con el estilo mientras tanto, házmelo saber y te daré algunas indicaciones.

2 Me gusta

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