Override del curso individual
En la lección anterior creaste la carpeta learnpress/ en tu child theme —
que es el «cuaderno» donde WordPress va a buscar tus versiones personalizadas.
Ahora copiamos el primer template: el archivo que controla
la página de detalle de cada curso.
¿Qué página controla single-course.php?
Cuando alguien hace clic en un curso de tu sitio y llega a su página de detalle
— la que tiene el título, el currículum, el botón «Continuar» y la info del instructor —
esa página es generada por un archivo llamado single-course.php.
Cada vez que alguien visita esa página, WordPress ejecuta ese archivo PHP y construye
todo el HTML que el visitante ve. Si queremos cambiar algo de esa página, necesitamos
tener nuestra propia versión de ese archivo.
Él decide qué se muestra y en qué orden.
↓ Así se ve la página que controla este archivo ↓
3
Lo que hicimos: copiar el archivo al lugar correcto
El proceso fue simple y siempre va a ser el mismo para cualquier template que quieras
personalizar. Se hace una sola vez por archivo:
learnpress/ que creamos
¿Qué pasa después? A partir de ahora, cada vez que alguien visita la
página de un curso, WordPress encuentra el archivo en tu child theme y lo usa.
El del plugin queda ignorado — aunque el plugin se actualice, tu versión sigue intacta.
Las dos rutas importantes
Siempre que hagás un override, hay que tener claras estas dos rutas.
La primera es de dónde venía el archivo, la segunda es a dónde fue:
learnpress/en tu child theme tiene que ser exactamente igual que en la carpeta del plugin.
Si el original estaba en
templates/profile/dashboard.php,tu override va en
learnpress/profile/dashboard.php.Solo cambia el inicio de la ruta.
Así se ve tu carpeta learnpress/ ahora
Dentro de divi-lms-child/learnpress/ ya tenés dos archivos:
el index.php de seguridad que creamos en la lección anterior,
y el nuevo single-course.php.
Fecha de modificación
Tipo
Tamaño
single-course.php
NUEVO ✓
¿Qué hay dentro del archivo?
Por ahora el código es casi igual al original. La diferencia es que le agregamos
comentarios en español para que entiendas exactamente qué hace cada parte.
Esto es intencional — primero entendemos la estructura, después la modificamos.
if ( ! wp_is_block_theme() ) {
do_action( ‘learn-press/template-header’ );
}
// ── 2. HOOKS: puntos donde otros plugins pueden agregar contenido
do_action( ‘learn-press/before-main-content’ );
// ── 3. BUSCAR EL CURSO por su nombre en la URL
$posts = get_posts( $args );
// ── ★ AQUÍ SE MUESTRA EL CONTENIDO DEL CURSO
learn_press_get_template( ‘content-single-course’ );
// ── 4. FOOTER: carga el pie de página
if ( ! wp_is_block_theme() ) {
do_action( ‘learn-press/template-footer’ );
}
learn_press_get_template('content-single-course')?Es la línea más importante. Esta función llama a otro archivo —
content-single-course.php — que es el que construye todo el HTMLvisible del curso (el encabezado morado, las pestañas, el botón «Continuar», etc.).
Ese archivo lo veremos en la próxima lección.
¿Cómo verificamos que WordPress usa nuestro archivo?
Hay una forma muy sencilla de confirmar que WordPress está leyendo tu versión
del template y no la del plugin. Solo necesitás el Inspector del Navegador
— esa herramienta que abrís con F12.
🔍 Pasos para verificar
single-course.php en la lista — debería aparecer la ruta de tu child theme, no la del plugin¡Eso es exactamente lo que queremos en esta etapa! No cambiamos el diseño todavía.
Solo le dijimos a WordPress «usá mi versión del template». En las próximas lecciones
vamos a personalizar ese template para que la página se vea diferente.
✅ Resultado de esta lección
Así quedó la estructura de tu child theme al terminar esta lección:
└── divi-lms-child/
├── assets/
├── learnpress/
│ ├── index.php ← seguridad
│ └── single-course.php ← ★ NUEVO — override activo
├── functions.php
└── style.css
single-course.php