Pregunta rápida sobre enlace programático a tema existente

Estoy utilizando formularios de frontend para crear publicaciones en WordPress que necesitan estar vinculadas a temas existentes de Discourse.

Mi plan es ingresar la URL del tema existente en un campo ACF al agregar o editar la publicación de WP.

A continuación, usaría:

add_action('acf/save_post', 'my_acf_save_post', 25);

Dentro de la función my_acf_save_post, ejecutaría:

protected function link_to_discourse_topic( $post_id, $topic_url )

Visto aquí.

¿Voy por buen camino?

1 me gusta

Sí, vas por buen camino. En términos generales, lo que necesitas hacer es:

  1. Obtener los detalles del tema desde Discourse (a menos que ya los tengas).
  2. Guardar los detalles relevantes en los campos de metadatos de la publicación adecuados.

Son esos campos de metadatos de la publicación, que ves en la función que enlazaste, los que crean la conexión.

También he añadido esto a mi hoja de ruta de desarrollo de WP Discourse: facilitar este proceso, es decir, utilizar una única función de utilidad pública para lograr este objetivo. Lo he programado para junio.

Además, echa un vistazo a las funciones de utilidad existentes en lib/plugin_utilities.php y lib/utilities.php, así como al método link_topic correspondiente en admin/discourse-sidebar/discourse-sidebar.php.

Cuéntame cómo te va.

2 Me gusta

@Angus, gracias por tu respuesta. Estoy en el jardín de infantes de PHP, así que si planeas trabajar en esto, esperaré.

Además, estoy obteniendo un error repetible con el plugin de WP. No sé si prefieres un post separado o un issue en GitHub, pero esto es lo que está ocurriendo:

Cuando abro un post de WP que está vinculado a un tema del foro, el enlace no aparece en el bloque de Discourse. Parece que no hay ningún enlace.

Condiciones:
Esto ocurre tanto si el enlace fue creado publicando un “Nuevo Tema” como si se usó “Vincular a un Tema Existente”.

Mis posts de WP son CPTs.

Mi configuración de comentarios está establecida en “Mostrar un enlace a los comentarios”.

Aparte de eso, no hay nada especial en mi instalación.

Confirmación:
Puedo confirmar que los enlaces que no aparecen en el bloque de Discourse existen, ya que los veo en mis columnas de administrador y porque puedo hacer clic en el enlace del frontend y acceder al post del foro.

Estaré encantado de ayudar con más información o pruebas.

Saludos, Richard

1 me gusta

¿Has añadido tu tipo de contenido personalizado en la configuración de publicación “Tipos de contenido para publicar”? Consulta más información aquí:

1 me gusta

Sí. Debería haber mencionado que al principio todo funciona: puedo publicar en un nuevo tema o enlazar a un tema existente, y los enlaces funcionan en ambos sentidos… excepto que:

Si luego vuelvo a editar una publicación en WordPress, el bloque de Discourse parece que no tiene ningún enlace, aunque el enlace en el frontend de WordPress siga dirigiendo al tema correcto del foro, y el enlace en el tema del foro siga dirigiendo a la publicación correcta de WordPress.

Así que el problema solo existe en el bloque de Discourse de WordPress al volver a editar una publicación.

Avísame si necesitas algo más.

1 me gusta

Gracias, tengo algunas preguntas más:

  1. ¿Ves algún error en la consola del inspector web de tu navegador?

  2. Si haces una actualización completa de la página mientras estás viendo el editor, ¿qué sucede?

Parece que hay un problema de JavaScript. Esto podría deberse a varias causas, incluidos otros complementos o una extensión del navegador. Si es posible, necesitamos reducir un poco más el alcance del problema.

1 me gusta

Consola: No se puede encontrar el nodo en la página actual.

Primero aparecen las secciones Opciones de publicación / Fijar tema y Publicar en Discourse del bloque de Discourse. Luego aparece la sección Categoría. No muestra los enlaces existentes.

Desactivé todos los complementos excepto WP-Discourse, CPT y ACF, y luego lo probé con los navegadores Brave y Edge, ambos sin extensiones y con los escudos desactivados. Aún así no puedo ver los enlaces existentes en el bloque de Discourse.

Estoy realizando una prueba entre publicaciones normales y publicaciones de tipo de contenido personalizado (CPT). Te informaré sobre los resultados.

1 me gusta

No sé por qué, pero ahora mis enlaces aparecen en el bloque de Discourse. Informaré si descubro un patrón en este problema. Gracias.

2 Me gusta