
Post actualizado * : 27/02/2023
(*) Ya se ha resuelto el siguiente problema: Necesitamos que las URL de los posts de un blog de WordPress federado sean reconocibles y susceptibles de ser encontradas en la caja de búsqueda. Los enlaces permanentes no se encuentran pero sí la URL con el ID de modo nativo (www.blogpocket.com/?p=<ID>), donde <ID> es el número identificativo del post.
Este artículo describe una forma de avisar a los lectores de un blog (por ejemplo, Blogpocket 😉 ) para responder tus publicaciones, desde la correspondiente publicación en Mastodon. Para ello, se emplea el ID de la página de WordPress y se inyecta un código PHP en la plantilla de posts individuales. Una vez publicado el post, ese código permite proporcionar una URL directa para hacerlo, del tipo www.blogpocket.com/?p=<iD>, donde <ID> se sustituye por el número identificativo de la página. Mastodon es capaz de encontrar las URL de ese tipo en las búsquedas, por lo que el problema queda resuelto.
El problema
El plugin de WordPress ActivityPub permite publicar las entradas de un blog en Mastodon, estando visibles en el timeline de inicio para todos aquellos usuarios que lo sigan. Para ello, es preciso conocer el usuario del blog federado en Mastodon que, por ejemplo, para el blog de Blogpocket es @acambronero. Recordemos que la URL correspondiente sería https://www.blogpocket.com/author/antonio; es decir, algo que no concuerda con la estructura de las URLs en Mastodon que son del estilo https://<host>/@<username>. Lo bueno del plugin ActivityPub es que si un usuario de Mastodon sigue al blog federado, puede responder a cualquier estado visible en el timeline de inicio y dicha respuesta se reflejará en la lista de comentarios del blog federado, junto al resto de comentarios realizados vía el sistema nativo de WordPress. Incluso, si no lo sigue, puede pegar la URL en la caja de búsqueda y contestar del mismo modo.
Lo que queremos añadir, en cada página de las entradas individuales del blog de WordPress, es un sistema que proporcione a los lectores del blog una URL concreta de Mastodon para que puedan comentar la publicación desde allí. El plugin ActivityPub hará su trabajo y reflejará la respuesta en la lista de comentarios del post.
La idea
A partir de este post de Carl Schwan (Adding comments to your static blog with Mastodon), me pregunté si sería fácil implementar ese pequeño código con el fin de que mis lectores pudiesen comentar los posts de mi blog de WordPress (Blogpocket.com) desde Mastodon.
Carl Schwan lo tiene en funcionamiento en su blog estático de Hugo. Pero, a priori, la implementación no debería ser tan diferente. ¿Merecería la pena instalar ese sistema en un blog de WordPress?
Comentarios en tu blog federado gracias a ActivityPub
ActivityPub tiene la capacidad de traer, a la lista de comentarios de tu blog federado de WordPress, las respuestas a las publicaciones en Mastodon. Esta es, básicamente, la razón por la que el sistema de Carl Schwan no merece la pena instalarse en WordPress.
Sin embargo, es muy interesante la primera parte del script en la que se ofrece al usuario un mensaje de invitación a comentar el post en su cuenta de Mastodon. Además, para facilitarlo, se incluye (para copiar en el portapapeles) la URL del post en Mastodon. Eso permite pegar la URL en la caja de búsqueda de la app de Mastodon utilizada y llegar a la publicación directamente con el fin de responder.
Consideraciones
Un inconveniente es que las búsquedas en Mastodon no funcionan para las URL asignadas por el plugin ActivityPub a los estados asociados a los posts del blog federado.
Por ejemplo, si el estado tiene un ID, la URL https://www.blogpocket.com/author/antonio/ID no funciona a la hora de buscarla (suponiendo que https://www.blogpocket.com/author/antonio es la URL del usuario Mastodon, correspondiente al blog de WP federado)
Pero he encontrado la solución al problema de buscar la URL Mastodon de un estado publicado mediante el plugin de WordPress ActivityPub. En realidad, WordPress asigna un ID a cada post y eso conforma una URL única.
Sin embargo, lo importante es:
- Somos capaces de ofrecer, dentro de la página del post individual del blog federado, una URL concreta para buscar en Mastodon.
- Cualquier usuario, en cualquier servidor de Mastodon, puede seguir en su timeline de inicio, las publicaciones del blog federado.
- Además, esos usuarios pueden responder desde allí y las respuestas se reflejarán automáticamente en los posts del blog federado, junto al resto de los comentarios realizados mediante el sistema nativo de WordPress.
- Y, los lectores del blog federado, que no lo sigan en sus cuentas de Mastodon, podrán localizar la URL para comentar desde Mastodon.
Implementación
Para poner en marcha el mensaje de aviso en WordPress, simplemente el código de Carl Schwan nos sirvió de inspiración pero mi desarrollo se fundamenta, básicamente, en el uso de la función
get_the_id();
y el plugin Insert PHP Code Snippet; más los mecanismos de bloques del editor del sitio en WordPress (Gutenberg)
A todos los efectos, como el blog de WordPress está federado, el host es www.blogpocket.com (o el dominio que sea), no se necesita Username y simplemente requerimos el ID que obtendremos con
get_the_id();
Con el plugin Insert PHP Code Snippet inyectaremos el código PHP (que puedes ver un poco más abajo) en la plantilla single.php del tema de WordPress activo. Este plugin asocia un shortcode al snippet creado, que puede ser incluido en la plantilla mediante el bloque de Shortcode.
Una vez publicado el post en el blog y replicado en Mastodon; todo estará listo.
El sistema de Carl Schwan se basa en JavaScript y en que la plataforma es estática como Hugo. Sin embargo, nosotros disponemos en WordPress del editor del sitio y de los bloques de Gutenberg. Mi implementación se fundamenta en esto y por lo tanto, descarta, la codificación de ningún javascript, utilizando solo PHP y los bloques del editor. Por supuesto, todo es mejorable e, incluso, se podría emplear Javascript con el fin de optimizar el diseño. Pero esto último no lo veo necesario, si lo que perseguimos es sencillez y minimalismo.
Código PHP
El código PHP es el siguiente (basado en el script de Carl Schwan)
<?php
$num = get_the_id();
$username = get_field( 'username' );
if( !empty( $num ) ) {
echo '<div style="background-color: #E6E7E9; font-size: 25px; padding: 20px; padding-top: 10px;">';
echo '<p>Puedes usar tu cuenta de Mastodon para responder a este <a class="link" href="https://www.blogpocket.com/?p='. $num . '">post</a> de ' . $username .'</p>';
echo '<p>Copia y pega la URL en el campo de búsqueda de la interfaz web de tu servidor Mastodon. </p></div>
';
} else {
echo '<p>URL no disponible. Puedes buscar este post siguiendo en Mastodon al usuario @acambronero@www.blogpocket.com</p>';
}
?>
Este código es mejorable. El style debería incluirse en el archivo style.css o en CSS Adicional. El método para obtener la estructura de la URL también debería optimizarse.
Pero lo importante de este snippet es que es capaz de componer la URL, válida para Mastodon, de cada entrada, con el $username y $num. Un ejemplo de URL sería www.blogpocket.com/?p=1111.
El snippet, se guarda gracias al plugin Insert PHP Code Snippet, y se inyecta en cada post del blog mediante el bloque Shortcode (a cada snippet creado con el plugin Insert PHP Code Snippet se le asigna un shortcode).
Para simular el pop-up del script de Carl Schwan se emplea un bloque de acordeón.
Por razones de usabilidad, se optó por invitar al usuario a copiar el enlace mediante la opción de copiarlo desde el menú contextual asociado al botón derecho del ratón. Es cierto, quizá, que para esta operación vendría bien el botón de copiar del javascript de Carl Schwan pero creo que no es tan necesario.
Conclusiones
Esto no es una alternativa a los comentarios nativos de WordPress, sino más bien algo complementario. Si se responde al post en Mastodon, hay más probabilidades de que esa respuesta se vea en el timeline de las personas que te siguen y así podrían descubrir la publicación del blog.
Leer más posts sobre la integración de WordPress y Mastodon.
Responder en Mastodon (requiere usuario en esa plataforma)
Puedes usar tu cuenta de Mastodon para responder a este post de acambronero
Copia y pega esta URL (https://www.blogpocket.com/?p=74046) en el campo de búsqueda de la interfaz web de tu servidor Mastodon.
Y aún hay más…
Cómo se hace un sitio web
Una revisión a vista de pájaro de todo lo necesario para crear un sitio web de WordPress.
Recursos
La lista de recursos recomendada en Blogpocket.
Mi lista de plugins
La lista de plugins de WordPress recomendada en Blogpocket

Suscríbete a la newsletter
En la newsletter «WP al día» recopilamos las ideas, trucos y noticias de actualidad acerca de WordPress, Gutenberg y la Edición completa del sitio. Recíbela todos los lunes a primera hora.
Suscríbete ahora y descarga, entre otros, nuestro último ebook «Un blog de 21 años (la historia jamás contada)!.
Deja una respuesta