Problema al usar is_single () para poner en cola el script de functions.php

2

Solo tengo problemas para agregar scripts a páginas de una sola publicación. Necesito incluir y excluir ciertos scripts usando is_single () pero no funciona de ninguna manera, lo intento.

Tengo la etiqueta de plantilla en la parte superior de las plantillas de publicación única personalizada ...

<?php /* Template Name: Single Default */ ?>

Y lo uso para llamar a un script desde functions.php

if (!is_admin()) {
 if (is_single()) {
    wp_register_script( 'jquery-scroll', get_bloginfo('stylesheet_directory').'/libs/jquery.jscrollpane.min.js' );
wp_enqueue_script( 'jquery-scroll' );
 }
}
    
pregunta Pollux Khafra 26.05.2012 - 02:12

1 respuesta

8

Este podría ser uno de los pocos problemas diferentes.

1. Gancho incorrecto / No enganchado

Debes asegurarte de que wp_enqueue_script esté enganchado a wp_enqueue_scripts . De lo contrario, la llamada se puede disparar demasiado tarde o (¿posiblemente en este caso?) Demasiado pronto?

Prueba esto (también con tu php limpiado un poco:

function wpse53364() {
    if( !is_admin() && is_single() ) {
        wp_register_script( 'jquery-scroll', get_bloginfo('stylesheet_directory').'/libs/jquery.jscrollpane.min.js' );
        wp_enqueue_script( 'jquery-scroll' );
    }
}
add_action( 'wp_enqueue_scripts', 'wpse53364' );

2. Uso incorrecto de la plantilla

No queda claro de tu pregunta, pero si estás usando single.php para tu "plantilla personalizada de publicaciones únicas", no deberías usar el encabezado "Nombre de la plantilla: ...". El jerarquía de plantillas de WordPress sabrá automáticamente qué archivo usar.

3. Etiqueta condicional incorrecta

El hecho de que esté utilizando una plantilla de página personalizada me hace preguntarme si está intentando usar este script para poner en cola el script en PAGES en lugar de POSTS. Si ese es el caso, debes reemplazar is_single() con is_page() o is_singular( 'page' )

    
respondido por el mrwweb 26.05.2012 - 02:21

Lea otras preguntas en las etiquetas