Genera un plugin de posts relacionados
Los relacionados al final de un artículo retienen lectores. Los plugins que lo hacen bien (YARPP, Contextual Related Posts) usan SQL full-text complejo o search engines externos. Vale para sitios grandes. Excesivo para casi todos.
Para un blog típico, una función de score que combina solapamiento de taxonomía, tags y recencia produce relacionados sólidos sin infra pesada. El score es barato y cacheamos el top 5 por post, así servir es casi cero coste.
¿Por qué generarlo en vez de instalar un plugin existente?
YARPP funciona pero su SQL pesa en sitios con >10k posts. Jetpack Related Posts requiere Jetpack y manda datos a WordPress.com. Jetpack es mucho para un feature.
Un plugin generado puntúa cada candidato: 3 por categoría compartida, 1 por tag compartido, +0.5 si reciente. Calcula top 5 una vez por post (en save o cron backfill) y guarda ids en post meta. Render = WP_Query por IDs.
Resultado: bloque de relacionados carga <10ms porque no hay scoring en runtime. Re-scoring cuando cambia un post o su taxonomía.
Prompt de ejemplo
Este es el tipo de descripción que genera este plugin. Puedes partir de aquí y ajustar lo que necesites antes de generar.
Nombre del plugin: Acme Related Posts
En save_post (post type = post):
- Puntuar otros publicados: 3 por categoría compartida, 1 por tag, +0.5 si publicado últimos 6 meses.
- Guardar top 5 post ids en meta acme_related_ids.
Fallback: si el solapamiento no da nada, los 5 más recientes de la misma categoría.
Shortcode [acme_related] y bloque acme/related renderizan desde acme_related_ids con WP_Query por post__in.
Admin: botón "Rebuild all" que procesa todos los posts en lotes de 50 via WP Cron.
Recompute en: save_post, set_object_terms. Invalida posts aguas abajo que lo incluían.Qué suele incluir el plugin generado
- Función score combinando categorías, tags, recencia
- Top-5 cacheado por post en meta
- Bloque + shortcode render desde ids cacheados
- Invalidación en save_post y cambios de término
- Rebuild-all en cron por lotes
Pesos, tipos considerados y tamaño cache (5 vs 10) en el prompt. Multilingüe: describe regla de idioma para que relacionados queden en mismo idioma.
Preguntas frecuentes
¿Y si tengo 100k posts?
El score es O(n) por save, ~100ms para 100k. OK para save. El rebuild-all corre en lotes así que no timea.
¿Excluir tags del scoring?
Sí. Describe excluidos (ej: "internal" o "landing-page") y el scorer los salta.