Forzar remoción de defer en main.js - Issue #110 FIX REAL
PROBLEMA RAÍZ IDENTIFICADO:
- WordPress 6.3+ agrega automáticamente defer a scripts en footer con dependencias
- wp_localize_script NO funciona con scripts diferidos
- apusTheme nunca se inyecta en HTML
- main.js usa ruta incorrecta para modal: fetch('modal-contact.html')
- WordPress devuelve página 404 completa
- Se inserta en modalContainer duplicando TODO el sitio
SOLUCIÓN:
1. Agregar filtro script_loader_tag con prioridad 20
2. Remover atributos defer y data-wp-strategy de apus-main-js
3. Esto permite que wp_localize_script inyecte apusTheme
4. main.js ahora puede usar apusTheme.themeUrl correctamente
ARCHIVOS:
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:214-227 (nuevo filtro)
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:197 (versión 1.0.3)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -194,8 +194,8 @@ function apus_enqueue_custom_assets() {
|
||||
'apus-main-js',
|
||||
get_template_directory_uri() . '/assets/js/main.js',
|
||||
array('apus-bootstrap-js'),
|
||||
'1.0.2', // Cache bust: remove defer for wp_localize_script compatibility
|
||||
true // Load in footer (defer removed for wp_localize_script to work)
|
||||
'1.0.3', // Cache bust: force remove defer with filter
|
||||
true // Load in footer
|
||||
);
|
||||
|
||||
// Localize script to pass theme URL to JavaScript
|
||||
@@ -211,6 +211,21 @@ function apus_enqueue_custom_assets() {
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_custom_assets', 11);
|
||||
|
||||
/**
|
||||
* Remove defer from apus-main-js to make wp_localize_script work
|
||||
* WordPress 6.3+ adds defer automatically to footer scripts with dependencies
|
||||
* but wp_localize_script requires synchronous execution
|
||||
*/
|
||||
function apus_remove_defer_from_main_js($tag, $handle) {
|
||||
if ('apus-main-js' === $handle) {
|
||||
// Remove defer and data-wp-strategy attributes
|
||||
$tag = str_replace(' defer', '', $tag);
|
||||
$tag = str_replace(' data-wp-strategy="defer"', '', $tag);
|
||||
}
|
||||
return $tag;
|
||||
}
|
||||
add_filter('script_loader_tag', 'apus_remove_defer_from_main_js', 20, 2);
|
||||
|
||||
/**
|
||||
* Enqueue footer styles
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user