/** * AJAX: Regenerar SOLO SCHEMA (robusto, sin pedir JSON-LD completo al modelo) */ add_action( 'wp_ajax_nv_gemini_regen_schema', function() { // Base: permisos + nonce + función request + rate-limit (usa tu helper existente) $post = nv_gemini_check_ajax_base( 'nv_gemini_generate_save' ); $post_id = $post->ID; // Prompt adicional $prompt = isset($_POST['prompt']) ? sanitize_textarea_field( wp_unslash($_POST['prompt']) ) : ''; if ( empty( $prompt ) ) { wp_send_json_error([ 'message' => 'Prompt vacío para schema.' ]); } // Título y contenido $title = get_post_meta( $post_id, 'rank_math_title', true ); if ( empty( $title ) ) $title = get_the_title( $post_id ); $content_plain = wp_strip_all_tags( $post->post_content ); if ( function_exists('mb_substr') ) { $content_plain = mb_substr( $content_plain, 0, 2000 ); } else { $content_plain = substr( $content_plain, 0, 2000 ); } // ===================================================== // 1) Prompt “simple JSON” (NO JSON-LD completo) // Esto reduce mucho las respuestas vacías. [1](https://cvefeed.io/vuln/detail/CVE-2022-47161) // ===================================================== $instruction = "Extrae SOLO estos campos para un artículo SEO en español. Devuélvelos como un objeto JSON SIMPLE (sin @context, sin @type, sin JSON-LD completo). NO incluyas texto fuera del JSON. Claves requeridas: - headline: título del artículo (string) - description: resumen SEO en español (máx 160 caracteres) - author_name: nombre del autor (string, si no se indica usa 'Redacción') - date_published: fecha en formato YYYY-MM-DD (si no se conoce, usa la de hoy) TÍTULO: {$title} CONTENIDO: {$content_plain} PROMPT ADICIONAL: {$prompt}"; // Usa caché por prompt si tienes nv_gemini_cached_request(), si no usa nv_gemini_pro_request() if ( function_exists('nv_gemini_cached_request') ) { $raw = nv_gemini_cached_request( $instruction, 24 ); } else { $raw = nv_gemini_pro_request( $instruction ); } if ( empty( $raw ) ) { // generateContent puede devolver respuesta vacía por filtros/otros motivos sin error HTTP. [1](https://cvefeed.io/vuln/detail/CVE-2022-47161) wp_send_json_error([ 'message' => 'No devuelve contenido para schema (API Key, timeout o bloqueo).' ]); } // ===================================================== // 2) Extraer JSON robustamente // ===================================================== if ( function_exists('nv_extract_json_object') ) { $clean = nv_extract_json_object( $raw ); } else { // fallback mínimo si no existe tu helper $raw2 = preg_replace('/^```(?:json)?/i', '', trim($raw)); $raw2 = preg_replace('/```$/', '', trim($raw2)); $start = strpos($raw2, '{'); $end = strrpos($raw2, '}'); $clean = ($start !== false && $end !== false && $end > $start) ? substr($raw2, $start, $end - $start + 1) : ''; } if ( empty($clean) ) { error_log('[NV Gemini] Schema-only: no se pudo extraer JSON. Raw: ' . substr($raw,0,500)); wp_send_json_error([ 'message' => 'Respuesta sin JSON utilizable para schema.' ]); } $simple = json_decode( $clean, true ); if ( ! is_array( $simple ) ) { error_log('[NV Gemini] Schema-only: JSON inválido. Clean: ' . substr($clean,0,500)); wp_send_json_error([ 'message' => 'La respuesta de Gemini para schema no es JSON válido.' ]); } // ===================================================== // 3) Construir JSON-LD final en PHP (estable) // ===================================================== $headline = sanitize_text_field( $simple['headline'] ?? $title ); $desc = sanitize_text_field( $simple['description'] ?? '' ); $author = sanitize_text_field( $simple['author_name'] ?? 'Redacción' ); $date_pub = sanitize_text_field( $simple['date_published'] ?? date('Y-m-d') ); // Recortar description por seguridad if ( function_exists('mb_substr') ) { $desc = mb_substr( $desc, 0, 160 ); } else { $desc = substr( $desc, 0, 160 ); } // Validar fecha (muy básico) if ( ! preg_match('/^\d{4}-\d{2}-\d{2}$/', $date_pub ) ) { $date_pub = date('Y-m-d'); } $schema_ld = [ '@context' => 'https://schema.org', '@type' => 'Article', 'headline' => $headline, 'description' => $desc, 'author' => [ '@type' => 'Person', 'name' => $author, ], 'datePublished' => $date_pub, 'inLanguage' => 'es-ES', 'mainEntityOfPage' => get_permalink( $post_id ), ]; // ===================================================== // 4) Guardar schema raw (para inyectar en wp_head) // ===================================================== if ( function_exists('nv_gemini_save_schema_raw') ) { nv_gemini_save_schema_raw( $post_id, $schema_ld ); } else { update_post_meta( $post_id, 'nv_gemini_schema_raw', wp_json_encode( $schema_ld ) ); } wp_send_json_success([ 'message' => 'Schema guardado (Article). Se inyectará en el head si está activada la inyección.' ]); }); Martes de la XXVIII Semana del Tiempo Ordinario - Santa Teresa de Jesús, virgen y doctora de la Iglesia - Sant Francesc de Ciutadella

Martes de la XXVIII Semana del Tiempo Ordinario – Santa Teresa de Jesús, virgen y doctora de la Iglesia

lecturas 20201119 020 Sant Francesc de Ciutadella

Martes, 15 de octubre de 2024

Primera Lectura

Lectura del libro del Eclesiástico (15,1-6):

El que teme al Señor obrará así, observando la ley, alcanzará la sabiduría. Ella le saldrá al encuentro como una madre y lo recibirá como la esposa de la juventud; lo alimentará con pan de sensatez y le dará a beber agua de prudencia; apoyado en ella no vacilará y confiado en ella no fracasará; lo ensalzará sobre sus compañeros, para que abra la boca en la asamblea; lo llena de sabiduría e inteligencia, lo cubre con vestidos de gloria; alcanzará gozo y alegría, le dará un nombre perdurable.

Palabra de Dios

 

Salmo

Sal 88,2-3.6-7.8-9.16-17.18-19

R/. Contaré tu fama a mis hermanos,
en medio de la asamblea te alabaré

Cantaré eternamente las misericordias del Señor,
anunciaré tu fidelidad por todas las edades.
Porque dije: «Tu misericordia es un edificio eterno,
más que el cielo has afianzado tu fidelidad. R/.

El cielo proclama tus maravillas, Señor,
y tu fidelidad, en la asamblea de los ángeles.
¿Quién sobre las nubes se compara a Dios?
¿Quién como el Señor entre los seres divinos? R/.

Dios es temible en el consejo de los ángeles,
es grande y terrible para toda su corte.
Señor de los ejércitos, ¿quién como tú?
El poder y la fidelidad te rodean. R/.

Dichoso el pueblo que sabe aclamarte:
caminará, oh Señor, a la luz de tu rostro;
tu nombre es su gozo cada día,
tu justicia es su orgullo. R/.

Porque tú eres su honor y su fuerza,
y con tu favor realzas nuestro poder.
Porque el Señor es nuestro escudo,
y el Santo de Israel nuestro rey. R/.

 

Evangelio

Lectura del santo evangelio según san Mateo (11,25-30):

En aquel tiempo, exclamó Jesús: «Te doy gracias, Padre, Señor de cielo y tierra, porque has escondido estas cosas a los sabios y entendidos y se las has revelado a la gente sencilla. Sí, Padre, así te ha parecido mejor. Todo me lo ha entregado mi Padre, y nadie conoce al Hijo más que el Padre, y nadie conoce al Padre sino el Hijo, y aquel a quien el Hijo se lo quiera revelar. Venid a mí todos los que estáis cansados y agobiados, y yo os aliviaré. Cargad con mi yugo y aprended de mí, que soy manso y humilde de corazón, y encontraréis vuestro descanso. Porque mi yugo es llevadero y mi carga ligera.»

Palabra del Señor

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad