wp enfileirar estilo em modelos de página específicos

18

Estou no processo de um tema, gostaria de adicionar páginas de destino usando modelos de página. Não consigo encontrar em qualquer lugar que mostre como enfileirar estilo ou js para modelos de página específicos. Alguma sugestão. Ex. Página de destino 1 - landing-page-template-one.php precisará de um estilo e js muito diferentes do blog ou da página inicial.

    
por Sean 08.08.2012 / 21:20

4 respostas

23

Se você planeja fazer muito desenvolvimento de WP, marque esta página como favorita: enlace

A outra resposta funciona, mas a condicional depende de seu slug de página (myurl.com/this-is-the-slug) nunca mudar. Um método mais confiável (IMO) e um que se encaixa nesse caso seria usar a verificação condicional is_page_template('example-template.php') .

    
por kchjr 08.08.2012 / 23:01
21

Você pode usar a condição is_page( 'landing-page-template-one' ) em torno dos estilos / scripts específicos de sua página como parte de suas instruções de enfileiramento gerais.

function my_enqueue_stuff() {
  if ( is_page( 'landing-page-template-one' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

Você pode até encadear mais elseif para as outras páginas acima, etc.

Referência: Referência de funções - is_page()

    
por Edward Caissie 08.08.2012 / 21:34
1

Se o modelo de página estiver localizado em um subdiretório do tema (desde o WP 3.4), coloque o nome da pasta e uma barra no nome do arquivo, por exemplo:

is_page_template( 'templates/about.php' );

Assim, toda a função parece:

function my_enqueue_stuff() {
  if ( is_page_template( 'landing-page-template-one' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

Referência: Documentações oficiais

    
por Razon K. 21.10.2018 / 06:58
0

Não sei se as soluções fornecidas em outras respostas costumavam funcionar, mas (já que não há resposta aceita!) parece que a resposta correta é atualmente:

function my_enqueue_stuff() {
    if ( get_page_template_slug() == 'landing-page-template-one.php' ) {
        wp_enqueue_script('my-script-handle', 'script-path.js', ... );
    }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

is_page_template () só funciona fora do loop, de acordo com enlace .

    
por richplane 22.12.2016 / 14:08