wp estilo de puesta en cola en plantillas de página específicas

18

Estoy en el proceso de un tema, me gustaría agregar páginas de destino usando plantillas de página. No puedo encontrar ningún lugar que muestre cómo poner en cola el estilo o js para plantillas de página específicas. Alguna sugerencia. Ex. La página de destino - landing-page-template-one.php necesitará un estilo y js muy diferentes al blog o la página de inicio.

    
pregunta Sean 08.08.2012 - 21:20

4 respuestas

23

Si planea realizar un gran desarrollo de WP, debe marcar esta página: enlace

La otra respuesta funciona, pero el condicional depende de la barra de tu página (myurl.com/this-is-the-slug) que nunca cambia. Un método más confiable (IMO), y uno que se ajuste a este caso, sería utilizar la verificación condicional is_page_template('example-template.php') en su lugar.

    
respondido por el kchjr 08.08.2012 - 23:01
21

Puede usar el condicional is_page( 'landing-page-template-one' ) alrededor de los estilos / scripts específicos de su página como parte de sus declaraciones de puesta en cola en general.

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' );

Incluso podría encadenar más elseif en lo anterior para otras páginas, etc.

Referencia: Referencia de funciones - is_page()

    
respondido por el Edward Caissie 08.08.2012 - 21:34
1

Si la plantilla de la página está ubicada en un subdirectorio del tema (desde WP 3.4), anteponga el nombre de la carpeta y una barra al nombre del archivo de la plantilla, por ejemplo:

is_page_template( 'templates/about.php' );

Entonces, toda la función se ve como:

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' );

Referencia: Documentaciones oficiales

    
respondido por el Razon K. 21.10.2018 - 06:58
0

No sé si las soluciones proporcionadas en otras respuestas solían funcionar, pero (ya que no hay una respuesta aceptada), parece que la respuesta correcta es actualmente:

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 () solo funciona fuera del bucle, de acuerdo con enlace .

    
respondido por el richplane 22.12.2016 - 14:08

Lea otras preguntas en las etiquetas