feat: LOPDP Ecuador — router, permalinks, política privacidad, banner, nav, index temas
This commit is contained in:
@@ -6,6 +6,25 @@ Formato: `X.Y.Z` según `VERSIONADO.md`
|
|||||||
|
|
||||||
## [1.1.0] — 2026-06-05
|
## [1.1.0] — 2026-06-05
|
||||||
|
|
||||||
|
### feat: LOPDP Ecuador completo
|
||||||
|
- **router.php** — PHP built-in server ahora soporta permalinks (`/%postname%/`).
|
||||||
|
- **start-wordpress.sh** — actualizado para usar `router.php`.
|
||||||
|
- **Permalinks** configurados a `/%postname%/` en BD dev y producción.
|
||||||
|
- **Navegación** en los 4 temas usa `home_url()` base cuando no es front page, para que los links ancla funcionen desde páginas internas.
|
||||||
|
- **index.php** reescrito en los 4 temas con estilo propio del tema, botón "Volver al CV" y tipografía coherente.
|
||||||
|
- **Página Política de Privacidad** (`/politica-de-privacidad/`) creada en BD con contenido LOPDP completo (Art. 26 LOPDP Ecuador, base legal interés legítimo, datos anónimos).
|
||||||
|
- **Banner LOPDP** en footer: fondo navy `#1B3A5C`, botón rojo `#c0392b`, `display:flex` sin `!important`, JS con `localStorage`, responsive 600px. Sin los bugs de `removeAttribute('hidden')` ni `flex!important`.
|
||||||
|
- **Widget dashboard** "CV Patricia Flores — Estadísticas de visitas" con 4 temas + total.
|
||||||
|
- **Link de privacidad** en footer de los 4 temas usando `home_url()`.
|
||||||
|
|
||||||
|
### fix: cédula eliminada del sitio público (incluido en esta versión)
|
||||||
|
- Quitada la cédula (1103591648) de `pflores_get_cv_data()`, fallback y todos los `inc/cv-data.php`.
|
||||||
|
- Limpiada de BD dev y producción.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [1.1.0] — 2026-06-05 (revisado)
|
||||||
|
|
||||||
### fix: eliminar cédula del sitio público
|
### fix: eliminar cédula del sitio público
|
||||||
- Quitada la cédula (1103591648) de `pflores_get_cv_data()`, `pflores_cv_fallback_data()` y todos los `inc/cv-data.php` de los 4 temas.
|
- Quitada la cédula (1103591648) de `pflores_get_cv_data()`, `pflores_cv_fallback_data()` y todos los `inc/cv-data.php` de los 4 temas.
|
||||||
- Limpiados los campos `'id'` y `'C.I.'` de las opciones `pflores_perfil` en BD dev (`.20`) y producción (`.32`).
|
- Limpiados los campos `'id'` y `'C.I.'` de las opciones `pflores_perfil` en BD dev (`.20`) y producción (`.32`).
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||||
|
$file = __DIR__ . '/wordpress' . $path;
|
||||||
|
if ($path !== '/' && file_exists($file) && !is_dir($file)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
require_once __DIR__ . '/wordpress/index.php';
|
||||||
@@ -39,4 +39,4 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Iniciando WordPress en http://${WP_HOST}:${WP_PORT}"
|
echo "Iniciando WordPress en http://${WP_HOST}:${WP_PORT}"
|
||||||
exec php -S "${WP_HOST}:${WP_PORT}" -t "$WP_DIR"
|
exec php -S "${WP_HOST}:${WP_PORT}" -t "$WP_DIR" "$ROOT_DIR/backend/router.php"
|
||||||
|
|||||||
@@ -330,14 +330,10 @@ function pflores_get_cv_data(): array
|
|||||||
3. LOPDP — Política de privacidad, banner y widget
|
3. LOPDP — Política de privacidad, banner y widget
|
||||||
────────────────────────────────────────────── */
|
────────────────────────────────────────────── */
|
||||||
|
|
||||||
// A) Crear página de Política de Privacidad (una sola vez)
|
// A) Crear / reparar página de Política de Privacidad
|
||||||
add_action('admin_init', 'pflores_create_privacy_page');
|
add_action('admin_init', 'pflores_create_privacy_page');
|
||||||
function pflores_create_privacy_page(): void
|
function pflores_create_privacy_page(): void
|
||||||
{
|
{
|
||||||
if (get_option('pflores_privacy_page_created')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$content = '<h2>Responsable del tratamiento</h2>
|
$content = '<h2>Responsable del tratamiento</h2>
|
||||||
<p>Patricia Soledad Flores Sánchez · <a href="mailto:patricflorsanchez@gmail.com">patricflorsanchez@gmail.com</a> · pflores.linkedcorp.net</p>
|
<p>Patricia Soledad Flores Sánchez · <a href="mailto:patricflorsanchez@gmail.com">patricflorsanchez@gmail.com</a> · pflores.linkedcorp.net</p>
|
||||||
|
|
||||||
@@ -359,6 +355,28 @@ function pflores_create_privacy_page(): void
|
|||||||
<h2>Última actualización</h2>
|
<h2>Última actualización</h2>
|
||||||
<p>Junio de 2026.</p>';
|
<p>Junio de 2026.</p>';
|
||||||
|
|
||||||
|
// Si ya existe, reparar si tiene contenido genérico de WordPress
|
||||||
|
$existing = get_page_by_path('politica-de-privacidad');
|
||||||
|
if ($existing) {
|
||||||
|
update_option('pflores_privacy_page_created', $existing->ID);
|
||||||
|
if (str_contains((string) $existing->post_content, 'Qui') ||
|
||||||
|
str_contains((string) $existing->post_content, 'sample') ||
|
||||||
|
trim($existing->post_content) === '') {
|
||||||
|
wp_update_post([
|
||||||
|
'ID' => $existing->ID,
|
||||||
|
'post_content' => $content,
|
||||||
|
'post_status' => 'publish',
|
||||||
|
'post_name' => 'politica-de-privacidad',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si no existe, crearla
|
||||||
|
if (get_option('pflores_privacy_page_created')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$id = wp_insert_post([
|
$id = wp_insert_post([
|
||||||
'post_title' => 'Política de Privacidad',
|
'post_title' => 'Política de Privacidad',
|
||||||
'post_name' => 'politica-de-privacidad',
|
'post_name' => 'politica-de-privacidad',
|
||||||
@@ -369,7 +387,14 @@ function pflores_create_privacy_page(): void
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
if ($id && ! is_wp_error($id)) {
|
if ($id && ! is_wp_error($id)) {
|
||||||
update_option('pflores_privacy_page_created', 1);
|
update_option('pflores_privacy_page_created', $id);
|
||||||
|
// Asegurar permalinks bonitos
|
||||||
|
global $wpdb;
|
||||||
|
$wpdb->update(
|
||||||
|
$wpdb->options,
|
||||||
|
['option_value' => '/%postname%/'],
|
||||||
|
['option_name' => 'permalink_structure']
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -380,6 +405,7 @@ function pflores_lopd_banner(): void
|
|||||||
if (is_admin()) {
|
if (is_admin()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$privacy_url = esc_url(home_url('/politica-de-privacidad/'));
|
||||||
?>
|
?>
|
||||||
<style>
|
<style>
|
||||||
#pflores-lopd-banner {
|
#pflores-lopd-banner {
|
||||||
@@ -415,22 +441,19 @@ function pflores_lopd_banner(): void
|
|||||||
<strong>Ley Orgánica de Protección de Datos Personales del Ecuador (LOPDP)</strong>.
|
<strong>Ley Orgánica de Protección de Datos Personales del Ecuador (LOPDP)</strong>.
|
||||||
</p>
|
</p>
|
||||||
<div class="pflores-lopd-actions">
|
<div class="pflores-lopd-actions">
|
||||||
<a href="/politica-de-privacidad/" class="pflores-lopd-link">Política de privacidad</a>
|
<a href="<?php echo $privacy_url; ?>" class="pflores-lopd-link">Política de privacidad</a>
|
||||||
<button id="pflores-lopd-accept" type="button">Aceptar</button>
|
<button id="pflores-lopd-accept" type="button">Aceptar</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
(function(){
|
(function(){
|
||||||
var banner = document.getElementById('pflores-lopd-banner');
|
var b = document.getElementById('pflores-lopd-banner');
|
||||||
if (!banner) return;
|
if (!b) return;
|
||||||
if (!localStorage.getItem('pflores_lopd_ok')) {
|
if (!localStorage.getItem('pflores_lopd_ok')) b.style.display = 'flex';
|
||||||
banner.style.display = 'flex';
|
document.getElementById('pflores-lopd-accept').addEventListener('click', function(){
|
||||||
}
|
localStorage.setItem('pflores_lopd_ok', '1');
|
||||||
document.getElementById('pflores-lopd-accept')
|
b.style.display = 'none';
|
||||||
.addEventListener('click', function(){
|
});
|
||||||
localStorage.setItem('pflores_lopd_ok', '1');
|
|
||||||
banner.style.display = 'none';
|
|
||||||
});
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ $skills = array_filter($skillsFlat);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p style="font-size:.65rem;color:rgba(255,255,255,.25);text-align:center;margin-top:auto;padding-top:.75rem">
|
<p style="font-size:.65rem;color:rgba(255,255,255,.25);text-align:center;margin-top:auto;padding-top:.75rem">
|
||||||
<a href="/politica-de-privacidad/" style="opacity:.6;text-decoration:underline;color:inherit">Política de Privacidad · LOPDP</a>
|
<a href="<?php echo esc_url(home_url('/politica-de-privacidad/')); ?>" style="opacity:.6;text-decoration:underline;color:inherit">Política de Privacidad · LOPDP</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</aside><!-- /.ax-sidebar -->
|
</aside><!-- /.ax-sidebar -->
|
||||||
|
|||||||
@@ -73,13 +73,14 @@ add_filter('body_class', 'apex_body_classes');
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
function apex_render_nav(): string
|
function apex_render_nav(): string
|
||||||
{
|
{
|
||||||
|
$base = is_front_page() ? '' : home_url('/');
|
||||||
$items = [
|
$items = [
|
||||||
'#sobre-mi' => __('Sobre mí', 'apex'),
|
$base . '#sobre-mi' => __('Sobre mí', 'apex'),
|
||||||
'#impacto' => __('Impacto', 'apex'),
|
$base . '#impacto' => __('Impacto', 'apex'),
|
||||||
'#experiencia' => __('Experiencia', 'apex'),
|
$base . '#experiencia' => __('Experiencia', 'apex'),
|
||||||
'#formacion' => __('Formación', 'apex'),
|
$base . '#formacion' => __('Formación', 'apex'),
|
||||||
'#certificaciones' => __('Certificaciones', 'apex'),
|
$base . '#certificaciones' => __('Certificaciones', 'apex'),
|
||||||
'#contacto' => __('Contacto', 'apex'),
|
$base . '#contacto' => __('Contacto', 'apex'),
|
||||||
];
|
];
|
||||||
|
|
||||||
$html = '<ul class="ax-nav__list">';
|
$html = '<ul class="ax-nav__list">';
|
||||||
|
|||||||
@@ -1,24 +1,28 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
// Fallback template — the theme uses front-page.php for all CV content.
|
|
||||||
get_header();
|
get_header();
|
||||||
?>
|
?>
|
||||||
<div class="ax-main">
|
<aside class="ax-sidebar" id="ax-sidebar"></aside>
|
||||||
<div class="ax-content-wrap">
|
<main class="ax-main">
|
||||||
<?php if (have_posts()) : ?>
|
<div class="ax-content-wrap">
|
||||||
<?php while (have_posts()) : the_post(); ?>
|
<style>
|
||||||
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
|
.ax-page-content h1{font-size:1.6rem;font-weight:700;color:var(--ax-text);margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--ax-cyan)}
|
||||||
<h1><?php the_title(); ?></h1>
|
.ax-page-content h2,.ax-page-content h3{font-weight:600;color:var(--ax-text);margin:1.5rem 0 .5rem}
|
||||||
<div class="entry-content">
|
.ax-page-content h2{font-size:1rem}
|
||||||
<?php the_content(); ?>
|
.ax-page-content p{font-size:.9rem;color:var(--ax-muted);line-height:1.75;margin-bottom:.75rem}
|
||||||
</div>
|
.ax-page-content a{color:var(--ax-cyan)}
|
||||||
</article>
|
.ax-page-content a:hover{opacity:.75}
|
||||||
<?php endwhile; ?>
|
.ax-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:2rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ax-cyan);text-decoration:none}
|
||||||
<?php else : ?>
|
.ax-back:hover{opacity:.75}
|
||||||
<p><?php esc_html_e('No se encontró contenido.', 'apex'); ?></p>
|
.ax-back::before{content:'←'}
|
||||||
<?php endif; ?>
|
</style>
|
||||||
</div>
|
<div class="ax-section ax-page-content">
|
||||||
|
<a class="ax-back" href="<?php echo esc_url(home_url('/')); ?>">Volver al CV</a>
|
||||||
|
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||||
|
<h1><?php the_title(); ?></h1>
|
||||||
|
<?php the_content(); ?>
|
||||||
|
<?php endwhile; endif; ?>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
<?php get_footer(); ?>
|
<?php get_footer(); ?>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="site-footer__inner">
|
<div class="site-footer__inner">
|
||||||
<p><?php echo esc_html(get_bloginfo('name')); ?> · <?php echo esc_html(date_i18n('Y')); ?>
|
<p><?php echo esc_html(get_bloginfo('name')); ?> · <?php echo esc_html(date_i18n('Y')); ?>
|
||||||
·
|
·
|
||||||
<a href="/politica-de-privacidad/" style="opacity:.6;text-decoration:underline;font-size:.75rem;color:inherit">Política de Privacidad · LOPDP</a></p>
|
<a href="<?php echo esc_url(home_url('/politica-de-privacidad/')); ?>" style="opacity:.6;text-decoration:underline;font-size:.75rem;color:inherit">Política de Privacidad · LOPDP</a></p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<?php wp_footer(); ?>
|
<?php wp_footer(); ?>
|
||||||
|
|||||||
@@ -92,13 +92,14 @@ function cvolio_render_primary_menu(): string
|
|||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$base = is_front_page() ? '' : home_url('/');
|
||||||
$items = [
|
$items = [
|
||||||
'#resumen' => __('Resumen', 'cvolio'),
|
$base . '#resumen' => __('Resumen', 'cvolio'),
|
||||||
'#impacto' => __('Impacto', 'cvolio'),
|
$base . '#impacto' => __('Impacto', 'cvolio'),
|
||||||
'#experiencia' => __('Experiencia', 'cvolio'),
|
$base . '#experiencia' => __('Experiencia', 'cvolio'),
|
||||||
'#formacion' => __('Formación', 'cvolio'),
|
$base . '#formacion' => __('Formación', 'cvolio'),
|
||||||
'#certificaciones' => __('Certificaciones', 'cvolio'),
|
$base . '#certificaciones' => __('Certificaciones', 'cvolio'),
|
||||||
'#contacto' => __('Contacto', 'cvolio'),
|
$base . '#contacto' => __('Contacto', 'cvolio'),
|
||||||
];
|
];
|
||||||
|
|
||||||
$html = '<ul class="site-nav__menu">';
|
$html = '<ul class="site-nav__menu">';
|
||||||
|
|||||||
@@ -1,23 +1,26 @@
|
|||||||
<?php get_header(); ?>
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
<section class="content-wrap">
|
get_header();
|
||||||
<div class="content-card">
|
?>
|
||||||
<?php if (have_posts()) : ?>
|
<style>
|
||||||
<?php while (have_posts()) : the_post(); ?>
|
.cv-page-wrap{max-width:780px;margin:3rem auto;padding:0 2rem 4rem}
|
||||||
<article <?php post_class(); ?>>
|
.cv-page-wrap h1{font-family:'Manrope',sans-serif;font-size:2rem;font-weight:700;color:#d4a574;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid rgba(212,165,116,.4)}
|
||||||
<h1 class="entry-title"><?php the_title(); ?></h1>
|
.cv-page-wrap h2,.cv-page-wrap h3{font-family:'Manrope',sans-serif;font-weight:700;color:#d4a574;margin:1.75rem 0 .5rem}
|
||||||
<div class="entry-content">
|
.cv-page-wrap h2{font-size:1.1rem}
|
||||||
<?php the_content(); ?>
|
.cv-page-wrap p{font-size:.93rem;color:#c8c8d0;line-height:1.75;margin-bottom:.75rem}
|
||||||
</div>
|
.cv-page-wrap a{color:#d4a574}
|
||||||
</article>
|
.cv-page-wrap a:hover{color:#fff}
|
||||||
<?php endwhile; ?>
|
.cv-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:2rem;font-family:'Manrope',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#d4a574;text-decoration:none}
|
||||||
<?php else : ?>
|
.cv-back:hover{color:#fff}
|
||||||
<article class="content-empty">
|
.cv-back::before{content:'←'}
|
||||||
<h1><?php esc_html_e('Empieza a construir tu perfil', 'cvolio'); ?></h1>
|
</style>
|
||||||
<p><?php esc_html_e('Crea una pagina y usa este tema como base para tu hoja de vida.', 'cvolio'); ?></p>
|
<section class="content-wrap" style="min-height:60vh">
|
||||||
</article>
|
<div class="cv-page-wrap">
|
||||||
<?php endif; ?>
|
<a class="cv-back" href="<?php echo esc_url(home_url('/')); ?>">Volver al CV</a>
|
||||||
|
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||||
|
<h1><?php the_title(); ?></h1>
|
||||||
|
<?php the_content(); ?>
|
||||||
|
<?php endwhile; endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<?php get_footer(); ?>
|
<?php get_footer(); ?>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ declare(strict_types=1);
|
|||||||
<p class="lm-footer__copy">
|
<p class="lm-footer__copy">
|
||||||
<?php echo esc_html(get_bloginfo('name')); ?> · <?php echo esc_html(date_i18n('Y')); ?>
|
<?php echo esc_html(get_bloginfo('name')); ?> · <?php echo esc_html(date_i18n('Y')); ?>
|
||||||
·
|
·
|
||||||
<a href="/politica-de-privacidad/" style="opacity:.6;text-decoration:underline;font-size:.75rem;color:inherit">Política de Privacidad · LOPDP</a>
|
<a href="<?php echo esc_url(home_url('/politica-de-privacidad/')); ?>" style="opacity:.6;text-decoration:underline;font-size:.75rem;color:inherit">Política de Privacidad · LOPDP</a>
|
||||||
</p>
|
</p>
|
||||||
<a class="lm-footer__top" href="#top" aria-label="<?php esc_attr_e('Volver al inicio', 'lumina'); ?>">↑</a>
|
<a class="lm-footer__top" href="#top" aria-label="<?php esc_attr_e('Volver al inicio', 'lumina'); ?>">↑</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -91,13 +91,14 @@ function lumina_render_primary_menu(): string
|
|||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$base = is_front_page() ? '' : home_url('/');
|
||||||
$items = [
|
$items = [
|
||||||
'#resumen' => __('Perfil', 'lumina'),
|
$base . '#resumen' => __('Perfil', 'lumina'),
|
||||||
'#impacto' => __('Impacto', 'lumina'),
|
$base . '#impacto' => __('Impacto', 'lumina'),
|
||||||
'#experiencia' => __('Experiencia', 'lumina'),
|
$base . '#experiencia' => __('Experiencia', 'lumina'),
|
||||||
'#formacion' => __('Formación', 'lumina'),
|
$base . '#formacion' => __('Formación', 'lumina'),
|
||||||
'#certificaciones' => __('Certificaciones', 'lumina'),
|
$base . '#certificaciones' => __('Certificaciones', 'lumina'),
|
||||||
'#contacto' => __('Contacto', 'lumina'),
|
$base . '#contacto' => __('Contacto', 'lumina'),
|
||||||
];
|
];
|
||||||
|
|
||||||
$html = '<ul class="lm-nav__list">';
|
$html = '<ul class="lm-nav__list">';
|
||||||
|
|||||||
@@ -1,28 +1,26 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
get_header();
|
get_header();
|
||||||
?>
|
?>
|
||||||
|
<style>
|
||||||
<section class="lm-wrap">
|
.lm-page-wrap{max-width:780px;margin:3rem auto;padding:0 2rem 4rem}
|
||||||
<div class="lm-card">
|
.lm-page-wrap h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:2rem;font-weight:700;color:#0f766e;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:3px solid #f59e0b}
|
||||||
<?php if (have_posts()) : ?>
|
.lm-page-wrap h2,.lm-page-wrap h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;color:#0f766e;margin:1.75rem 0 .5rem}
|
||||||
<?php while (have_posts()) : the_post(); ?>
|
.lm-page-wrap h2{font-size:1.15rem}
|
||||||
<article <?php post_class('lm-entry'); ?>>
|
.lm-page-wrap p{font-size:.95rem;color:#334155;line-height:1.75;margin-bottom:.75rem}
|
||||||
<h1 class="lm-entry__title"><?php the_title(); ?></h1>
|
.lm-page-wrap a{color:#0d9488}
|
||||||
<div class="lm-entry__body">
|
.lm-page-wrap a:hover{color:#f59e0b}
|
||||||
<?php the_content(); ?>
|
.lm-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:2rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#0d9488;text-decoration:none}
|
||||||
</div>
|
.lm-back:hover{color:#f59e0b}
|
||||||
</article>
|
.lm-back::before{content:'←'}
|
||||||
<?php endwhile; ?>
|
</style>
|
||||||
<?php else : ?>
|
<section style="background:#f8fafc;min-height:60vh">
|
||||||
<article class="lm-entry lm-entry--empty">
|
<div class="lm-page-wrap">
|
||||||
<h1><?php esc_html_e('Empieza a construir tu perfil', 'lumina'); ?></h1>
|
<a class="lm-back" href="<?php echo esc_url(home_url('/')); ?>">Volver al CV</a>
|
||||||
<p><?php esc_html_e('Crea una página de inicio y usa Lumina CV como tema activo.', 'lumina'); ?></p>
|
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||||
</article>
|
<h1><?php the_title(); ?></h1>
|
||||||
<?php endif; ?>
|
<?php the_content(); ?>
|
||||||
|
<?php endwhile; endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<?php get_footer(); ?>
|
<?php get_footer(); ?>
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ $publicUrl = 'https://pflres.linkedcorp.net';
|
|||||||
|
|
||||||
<div class="pn-footer-bar">
|
<div class="pn-footer-bar">
|
||||||
<p><?php echo esc_html(get_bloginfo('name')); ?> © <?php echo esc_html(date_i18n('Y')); ?> — <?php esc_html_e('Todos los derechos reservados', 'persona'); ?></p>
|
<p><?php echo esc_html(get_bloginfo('name')); ?> © <?php echo esc_html(date_i18n('Y')); ?> — <?php esc_html_e('Todos los derechos reservados', 'persona'); ?></p>
|
||||||
<a href="/politica-de-privacidad/" style="opacity:.6;text-decoration:underline;font-size:.75rem;color:inherit">Política de Privacidad · LOPDP</a>
|
<a href="<?php echo esc_url(home_url('/politica-de-privacidad/')); ?>" style="opacity:.6;text-decoration:underline;font-size:.75rem;color:inherit">Política de Privacidad · LOPDP</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -50,14 +50,15 @@ function persona_render_nav(): string {
|
|||||||
'fallback_cb' => false, 'menu_class' => 'pn-nav__list', 'echo' => false,
|
'fallback_cb' => false, 'menu_class' => 'pn-nav__list', 'echo' => false,
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
$base = is_front_page() ? '' : home_url('/');
|
||||||
$items = [
|
$items = [
|
||||||
'#sobre-mi' => 'Sobre mí',
|
$base . '#sobre-mi' => 'Sobre mí',
|
||||||
'#impacto' => 'Impacto',
|
$base . '#impacto' => 'Impacto',
|
||||||
'#experiencia' => 'Experiencia',
|
$base . '#experiencia' => 'Experiencia',
|
||||||
'#formacion' => 'Formación',
|
$base . '#formacion' => 'Formación',
|
||||||
'#competencias' => 'Competencias',
|
$base . '#competencias' => 'Competencias',
|
||||||
'#certificaciones' => 'Certificaciones',
|
$base . '#certificaciones' => 'Certificaciones',
|
||||||
'#contacto' => 'Contacto',
|
$base . '#contacto' => 'Contacto',
|
||||||
];
|
];
|
||||||
$html = '<ul class="pn-nav__list">';
|
$html = '<ul class="pn-nav__list">';
|
||||||
foreach ($items as $href => $label) {
|
foreach ($items as $href => $label) {
|
||||||
|
|||||||
@@ -2,10 +2,24 @@
|
|||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
get_header();
|
get_header();
|
||||||
?>
|
?>
|
||||||
|
<style>
|
||||||
|
.pn-page-wrap{max-width:780px;margin:3rem auto;padding:0 2rem 4rem}
|
||||||
|
.pn-page-wrap h1{font-family:'Raleway',sans-serif;font-size:2rem;font-weight:700;color:#1B3A5C;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:3px solid #c0392b}
|
||||||
|
.pn-page-wrap h2,.pn-page-wrap h3{font-family:'Raleway',sans-serif;font-weight:700;color:#1B3A5C;margin:1.75rem 0 .5rem}
|
||||||
|
.pn-page-wrap h2{font-size:1.15rem}
|
||||||
|
.pn-page-wrap p{font-size:.95rem;color:#2d3436;line-height:1.75;margin-bottom:.75rem}
|
||||||
|
.pn-page-wrap a{color:#c0392b}
|
||||||
|
.pn-page-wrap a:hover{color:#1B3A5C}
|
||||||
|
.pn-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:2rem;font-family:'Raleway',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#c0392b;text-decoration:none}
|
||||||
|
.pn-back:hover{color:#1B3A5C}
|
||||||
|
.pn-back::before{content:'←'}
|
||||||
|
</style>
|
||||||
<section class="pn-section pn-section--white">
|
<section class="pn-section pn-section--white">
|
||||||
<div class="pn-container">
|
<div class="pn-page-wrap">
|
||||||
|
<a class="pn-back" href="<?php echo esc_url(home_url('/')); ?>">Volver al CV</a>
|
||||||
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||||
<article <?php post_class(); ?>><h1><?php the_title(); ?></h1><?php the_content(); ?></article>
|
<h1><?php the_title(); ?></h1>
|
||||||
|
<?php the_content(); ?>
|
||||||
<?php endwhile; endif; ?>
|
<?php endwhile; endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user