¿Cómo cargar ciertos scripts solo en páginas individuales de tipo de publicación personalizada en wordpress?

1 minuto de lectura

avatar de usuario
Jagan K.

Lo siguiente no puede cargar los scripts en las páginas individuales,

if(is_single( ) ) add_action('wp_enqueue_scripts', 'build_js');

Supongamos, si uso

add_action('wp_enqueue_scripts', 'build_js');

se realiza la acción y se cargan los scripts.

Necesito realizar la acción solo en páginas individuales de un tipo de publicación personalizada. ¿Como hacer esto?

el problema es que debe verificar la página única en la función:

function build_js(){
    if( is_single() && get_post_type()=='CustomPostTypeName' ){
        wp_enqueue_script(....);
    }
}
add_action('wp_enqueue_scripts', 'build_js');

en vez de

if(is_single( ) ) add_action('wp_enqueue_scripts', 'build_js');

  • ¿Puedes explicar por qué? ¿Por qué debe realizarse una acción de manera no necesaria? ¿Por qué is_single() falla en primer lugar?

    – Jagan K.

    22 de noviembre de 2013 a las 7:20

  • @JaganK No estoy seguro, pero como sé que esto se debe a action_hooks, supongo que todos estos ganchos y filtros se inician antes de mostrar la página completa.

    – jogesh_pi

    22 de noviembre de 2013 a las 7:41

  • También puede “preregistrar” el script usando wp_register_script y ponlo en cola cuando lo necesites.

    – laviku

    27 de marzo de 2019 a las 13:03

Puede simplificar aún más la lógica con la función de WordPress is_singular() en cambio.

function build_js(){
  if( is_singular('CustomPostTypeName') ) {
    wp_enqueue_script(....);
  }
}
add_action('wp_enqueue_scripts', 'build_js');

Puede incluir el valor de get_post_type() en tu condición

if(is_single() && get_post_type()=='CustomPostTypeName' )
    add_action('wp_enqueue_scripts', 'build_js');

¿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