Problema ao usar is_single () para enfileirar script de functions.php

2

Estou com problemas para adicionar scripts somente a páginas de postagem. Eu preciso incluir e excluir certos scripts usando is_single (), mas não funciona de qualquer maneira eu tentei.

Eu tenho a tag de modelo no topo dos modelos personalizados de postagem única ...

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

E eu uso isso para chamar um script do 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' );
 }
}
    
por Pollux Khafra 26.05.2012 / 02:12

1 resposta

8

Esta pode ser uma das poucas questões diferentes.

1. Gancho Errado / Não Enganchado

Você precisa verificar se wp_enqueue_script está conectado a wp_enqueue_scripts . Caso contrário, a chamada pode ser disparada muito tarde ou (possivelmente neste caso?) Muito cedo?

Tente isso (também com o seu php limpo um pouco:

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 incorreto do modelo

Não está claro a sua pergunta, mas se você estiver usando single.php para o seu "modelo personalizado de postagens únicas", não deverá usar o cabeçalho "Nome do modelo: ...". A hierarquia de modelos do WordPress saberá automaticamente qual arquivo usar.

3. Tag condicional incorreta

O fato de você estar usando um modelo de página personalizado me faz pensar se você está tentando usar esse script para enfileirar o script em PAGES em vez de POSTS. Se for esse o caso, você precisa substituir is_single() por is_page() ou is_singular( 'page' )

    
por mrwweb 26.05.2012 / 02:21