Este documento describe la migración de un portal en ASP.NET con 150,000 contenidos a WordPress. Se explica que la migración permitió una mayor sostenibilidad, modernización y optimización de recursos. También facilitó encontrar colaboradores y disponer de la comunidad WordPress para apoyo. Se detallan los plugins utilizados para importar contenido, crear tipos de contenido personalizados, realizar búsquedas y recopilaciones, y gestionar membresías y formularios.
1. Migrando un portal en ASP.NET
de 150.000 contenidos a
WordPress
@damasovelazquez @webprogramacion
2. Dámaso Velázquez
Ingeniero Técnico en
Informática de Sistemas
Consultor Informático y
fundador en
WebProgramacion.com
Miembro del grupo
tecnología y discapacidad en
INICO (Universidad de
Salamanca)
Responsable informático del
grupo de investigación
Infoautismo en INICO
(Universidad de Salamanca)
Desarrollo .NET en C#… y
WordPress
@damasovelazquez #WCMAD 2
3. El portal: Servicio de Información sobre
Discapacidad
Versión .NET: http://sid.usal.es
Versión en WordPress: https://sid-inico.usal.es/
Más especialistas en discapacidad y menos
informáticos
@damasovelazquez #WCMAD 3
4. ¿Por qué migramos a WordPress?
Sostenibilidad
Modernización
Optimizar recursos
Copias de seguridad de
los informáticos
Facilidad para
encontrar
colaboradores
Disponibilidad de la
Comunidad WordPress
@damasovelazquez #WCMAD 4
5. ¿Qué tipo de información manejamos?
@damasovelazquez #WCMAD 5
Noticias
Fuentes
documentales
Leyes Cursos
Recursos en
Internet
Centros y
Servicios
Información diferente pero muy relacionada
entre sí
Hay muchos elementos comunes a todos los
bloques
Manejamos muchos documentos PDF: Biblioteca
Digital del SID
Algunos
elementos
comunes
Colectivos
Autores
Áreas
6. ¿Qué buscamos para mostrar la información?
Accesibilidad, usabilidad, sencillez para el
usuario
Mostrar contenidos atractivos
Posibilidad de relacionar fácilmente contenidos
Facilidad a la hora de crear recopilaciones de
contenidos de diferentes naturalezas
@damasovelazquez #WCMAD 6
7. ¿Cómo lo hacíamos hasta ahora?
Programa cliente de Windows para cargar contenidos
Solución en ASP.NET con C# que mostraba los
elementos de la base de datos
Buscador hecho a mano, con una implementación
específica para cada tipo de contenido
Recopilaciones de contenidos mediante shortcodes
caseros, cuando no conocíamos WordPress
@damasovelazquez #WCMAD 7
8. Y después de todo esto…
@damasovelazquez #WCMAD 8
¿Cómo lo haríais vosotros?
9. Tablas Custom Post Types
Campos Advanced Custom Fields
Para los elementos comunes entre diferentes tipos
de contenido vamos a empezar a usar Taxonomías
en lugar de relaciones entre tablas
@damasovelazquez #WCMAD 9
Comparativa Antes - Después
10. Mostramos recopilaciones de contenidos mediante
shortcodes y vistas en lugar de horas y horas de
programación
Y hacemos buscadores en minutos, en lugar de
horas… o meses
@damasovelazquez #WCMAD 10
Comparativa Antes - Después
11. @damasovelazquez #WCMAD 11
Cómo cambió la distribución del equipo
Especialistas en
discapacidad
Informáticos
Informáticos
Especialistas en
discapacidad
(+WordPress)
12. @damasovelazquez #WCMAD 12
¿Qué plantilla hemos usado?
Nuestra primera opción fue Divi
A día de hoy Divi y Elementor soportan acceder a Custom
Fields
Pero finalmente cambiamos a Elementor porque
incluyeron soporte a crear plantillas para CPT’s con ACF, es
decir, permiten hacer el “single” sin utilizar código y ubicar
sus ACF’s
La plantilla la hemos desarrollado desde cero para
optimizar la carga
13. @damasovelazquez #WCMAD 13
Plugins que hemos utilizado
Generales
WP Add Custom CSS: Permite configurar todo el sitio y
un contenido concreto
Dashboard Notepad: Para dejar notas sencillas a los
especialistas en contenidos
Code Snippets: Nos permite programar pequeños
fragmentos PHP para personalizar elementos del
portal (actions, filters, hooks, …)
14. @damasovelazquez #WCMAD 14
Plugins que hemos utilizado
Tipos de contenidos y datos
Custom Post Type UI: Nos permite crear
diferentes tipos de contenidos (CPT’s) y
taxonomías
15. @damasovelazquez #WCMAD 15
Plugins que hemos utilizado
Tipos de contenidos y datos
Advanced Custom Fields: Permite que creemos
campos específicos para los tipos de contenidos
personalizados
Principal dificultad: en algunos CPT’s hemos llegado a
superar los 30 campos personalizados, que hay implicado
que hayamos tenido que poner un valor muy alto de
memoria para el proceso PHP
16. @damasovelazquez #WCMAD 16
Plugins que hemos utilizado
Importación
WP All Import:
Nos ha permitido importar toda la base de datos en la
estructura de WordPress de CPT’s + ACF’s
El fichero ideal de origen ha sido el formato XML
Dificultad 1: lentitud y necesidad de ampliar tiempos de
espera en la configuración de PHP
Dificultad 2: Sincronizar contenidos al seguir trabajando
en paralelo con ambas versiones
17. @damasovelazquez #WCMAD 17
Plugins que hemos utilizado
Búsquedas y recopilaciones
FacetWP:
Nos permite hacer de manera sencilla un filtrado
avanzado de contenidos y mostrarlo de una forma
intuitiva y moderna
Principal dificultad: Crear la indexación de un número tan
alto de contenidos que a su vez tienen un número
elevadísimo de campos personalizados
18. @damasovelazquez #WCMAD 18
Plugins que hemos utilizado
Búsquedas y recopilaciones
Relevanssi: Para poder hacer búsquedas en todos los
campos y mejorar el buscador genérico de WordPress
que sólo busca en título y contenido, pero no en
campos personalizados o documentos PDF
Content Views Pro: Para hacer recopilaciones de
informaciones de manera sencilla y sin permitir
filtrado
19. @damasovelazquez #WCMAD 19
Plugins que hemos utilizado
Mensajería
Mailpoet: Ha sido la herramienta elegida para
crear nuestros newsletters
Dado que tenemos muchos CPT’s hemos creado
listas de suscripción por cada CPT y programar
notificaciones para cada lista
También nos da la funcionalidad de generar
boletines de novedades de forma manual: Boletín
Digital del SID
20. @damasovelazquez #WCMAD 20
Plugins que hemos utilizado
Mensajería
Sendinblue: Para mejorar la tasa de apertura de
nuestros mails, necesitamos que lleguen a la bandeja
de entrada. En algunas ocasiones necesitamos saber si
se abren.
Alternativa interesante: Mailjet
Post SMTP Mailer/Email Log: Configuración sencilla
del correo saliente así
21. @damasovelazquez #WCMAD 21
Plugins que hemos utilizado
Membresía y definición de roles
User Role Editor: Hemos necesitado sobrescribir
permisos a usuarios y crear un rol específico de
suscriptor
Ultimate Member: Para crear membresías. Nos ha
permitido hacer una zona privada del usuario con
contenidos específicos y restringir páginas por
diferentes roles
22. @damasovelazquez #WCMAD 22
Plugins que hemos utilizado
Formularios de contacto y toma de datos
GravityForms:
Creamos formularios de contacto en minutos, con
aviso por correo electrónico tanto a
administradores como a quien rellena los datos
Ampliación de funcionalidades gracias a sus
extensiones (Stripe, Paypal, Cuestionarios, …)
Generación de base de datos con los contenidos
23. @damasovelazquez #WCMAD 23
Conclusiones (I)
El paso a WordPress ha sido una fantástica
decisión
Elegid un buen alojamiento. Si dudáis:
SiteGround
Los plugins esenciales deben ser de
desarrolladores solventes y sin escatimar pagar
planes premium si es necesario Más
funciones y soporte
24. @damasovelazquez #WCMAD 24
Conclusiones (y II)
Dotar de buenos recursos de CPU, límites de
tiempo y memoria altos para las tareas de
importación e indexación
La Comunidad es la herramienta más potente
de WordPress