wordpress obtiene la url del script registrado

2 minutos de lectura

Si registro un script o estilo (usando wp_register_script() o wp_register_style()), ¿hay alguna forma de obtener la URL de ese script/estilo?

(Si debe saber por qué, estoy tratando de poner esas URL en otra función que genera etiquetas de enlace de búsqueda previa para poder buscar previamente ciertos scripts/estilos para aumentar el rendimiento en mi sitio).

avatar de usuario
Adonis Farías

Por si alguien sigue buscando esto:

<?php
function invdr_get_script_uri_by_handler( $handler ){
    //Get an instance of WP_Scripts or create new;
    $wp_scripts = wp_scripts(); 

    //Get the script by registered handler name
    $script = $wp_scripts->registered[ $handler ]; 

    if ( file_exists( ABSPATH . $script->src ) ){
        return ABSPATH . $script->src;
    }
    return false;
}
add_action( 'wp_enqueue_scripts', 'invdr_get_script_uri_by_handler', PHP_INT_MAX );

Probado en wordpress 5.0

  • gracias por ejemplo pero esta parte file_exists( ABSPATH . $script->src ) siempre devuelve “verdadero”, como if_exists comprueba los archivos y carpetas disponibles. Si reemplaza file_exists con es_archivo todo funciona correcto.

    – Yura Kosyak

    6 de noviembre de 2020 a las 16:33


avatar de usuario
scuzzy

Puedes usar wp_scripts() para obtener la instancia de la WP_Scripts clase que contiene los scripts registrados (esta clase se extiende WP_Dependencies).

Básicamente, intente buscar en:

$wp_scripts = wp_scripts();
var_dump( $wp_scripts->registered );
var_dump( $wp_scripts );

  • Intenté esto y, lamentablemente, en ninguna parte de los datos devueltos tenía el nombre de archivo de mis scripts/estilos registrados en ninguna parte. 🙁 Agradezco la respuesta, sin embargo.

    – Háblame de forma noña

    17 de noviembre de 2017 a las 16:43

  • Seguí el código para ver cómo wp_register_script funciona y me lleva a esa clase, encontrará una referencia a $wp_scripts->add( (probado bajo wordpress 4.8.3)

    – Scuzzy

    17 de noviembre de 2017 a las 20:59


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. 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. Configurar y más información
Privacidad