Sincronizar mu-plugins/ y scripts/ con el estado real del sitio (2026-07-16)

Este repo llevaba desde el 28-jun sin actualizarse (salvo sync_carta_from_prod.py).
Se pone al dia con 3 semanas de trabajo que solo vivian en el checkout local
completo del proyecto:

- Fix del buscador (issue #178): AND obligatorio en FULLTEXT (antes devolvia
  practicamente todo el sitio con cualquier busqueda), exclusion de paginas
  indice residuales de la migracion K2, soporte de frase exacta entre comillas.
- Nuevos mu-plugins ya desplegados a prod: fea-carta-id-api, fea-cloudflare-realip,
  fea-crear-autor-api, fea-gsc-verification, fea-legacy-redirect (cutover
  Joomla->WP, ver issue #162).
- TTS multi-voz por autor, scripts de traduccion, sync de audio a prod,
  homenajes Mardones/Galarreta.

Se mantiene la estructura plana del repo (mu-plugins/ + scripts/, sin el
wordpress/wp-content/ del checkout completo) tal y como documenta el README:
es la convencion establecida para este repo, mas limpia para quien solo
necesita leer el codigo. Anadido .gitignore (cache de Python que no debia
commitearse).

Fuente: checkout local completo del proyecto, rama main (commit 69e849d).
This commit is contained in:
2026-07-15 20:26:43 -04:00
parent d044e229dc
commit 6b61250b0b
35 changed files with 1482 additions and 45 deletions
+15 -2
View File
@@ -2,7 +2,9 @@
/**
* fea-share — Sección "Comparte Fe Adulta" en single posts + Open Graph tags.
* Botones: Facebook, Instagram (Web Share API + fallback copiar), Imprimir.
* Sin plugins externos, sin JS de terceros, sin tracking.
* Sin plugins externos, sin JS de terceros. El botón de Facebook dispara un
* evento GA4 share_click (mismo patrón que fea-audio-player.php: data-attribute
* + listener en wp_footer que llama a gtag, ya inicializado por fea-analytics.php).
*/
/** Solo artículos reales: single post_type=post, excluyendo institucionales. */
@@ -44,6 +46,7 @@ function fea_share_block_html(): string {
$svg_pr = '<svg viewBox="0 0 24 24" width="17" height="17" aria-hidden="true" focusable="false" fill="currentColor"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7a1 1 0 0 1 0-2 1 1 0 0 1 0 2zm-1-9H6v4h12V3z"/></svg>';
$copied_msg = esc_js($t['copied']);
$post_id = get_the_ID();
return '
<div class="fea-share">
@@ -52,7 +55,8 @@ function fea_share_block_html(): string {
<span class="fea-share-label">' . esc_html($t['section']) . '</span>
<a href="https://www.facebook.com/sharer/sharer.php?u=' . $url . '"
target="_blank" rel="noopener noreferrer nofollow"
class="fea-share-item fea-share-fb">
class="fea-share-item fea-share-fb"
data-fea-share-track="facebook" data-post-id="' . esc_attr($post_id) . '">
' . $svg_fb . '<span>' . esc_html($t['fb']) . '</span>
</a>
<span class="fea-share-sep" aria-hidden="true">·</span>
@@ -198,6 +202,15 @@ add_action('wp_footer', function () {
}
});
})();
document.querySelectorAll('[data-fea-share-track]').forEach(function (el) {
el.addEventListener('click', function () {
if (typeof gtag !== 'function') return;
gtag('event', 'share_click', {
method: el.dataset.feaShareTrack,
post_id: el.dataset.postId
});
});
});
</script>
<?php
}, 20);