¿Cómo encolar Bootstrap 4 en un tema?

16 jun 2018, 20:07:36
Vistas: 29.9K
Votos: 3

Intenté encolar Bootstrap con functions.php

wp_enqueue_style('bootstrap4', 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css');
wp_enqueue_script( 'boot1','https://code.jquery.com/jquery-3.3.1.slim.min.js');
wp_enqueue_script( 'boot2','https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js');
wp_enqueue_script( 'boot2','https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js');

El CSS parece funcionar pero ninguno de los archivos JS está funcionando... no estoy seguro de qué estoy haciendo mal...

Por favor ayuda, gracias

2
Comentarios

¿Tu tema está usando wp_head()?

Nathan Johnson Nathan Johnson
16 jun 2018 20:25:10

sí, estoy usándolo y confirmé que lo tiene... el problema parece ser que: wp_enqueue_script( 'boot2','https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js', array( 'jquery' ),'',true ); no se está cargando... los demás sí se cargan en el encabezado

User User
16 jun 2018 20:45:40
Todas las respuestas a la pregunta 2
9

Puedes usar un hook de acción y encolar scripts y estilos en el sitio.

function my_scripts() {
    wp_enqueue_style('bootstrap4', 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css');
    wp_enqueue_script( 'boot1','https://code.jquery.com/jquery-3.3.1.slim.min.js', array( 'jquery' ),'',true );
    wp_enqueue_script( 'boot2','https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js', array( 'jquery' ),'',true );
    wp_enqueue_script( 'boot3','https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js', array( 'jquery' ),'',true );
}
add_action( 'wp_enqueue_scripts', 'my_scripts' );

Si deseas agregar los scripts después de jQuery, puedes usar el array de jQuery como dependencia. El último argumento true incluirá el JS en el footer, si lo quieres en el header puedes eliminarlo.

16 jun 2018 20:25:10
Comentarios

hola... todavía no funciona ..wp_enqueue_script( 'boot2','https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js', array( 'jquery' ),'',true ); este script no se carga por alguna razón..los demás sí aparecen

User User
16 jun 2018 20:46:45

solucionado... el problema estaba con el $handle ..boot2 , boot2 :)..gracias por la ayuda

User User
16 jun 2018 20:49:49

Puedes usar nombres correctos como 'popper', 'bootstrap' y 'popper' como dependencia para el script 'bootstrap'. No necesitas encolar jQuery slim :)

Elex Elex
16 jun 2018 20:55:05

¿Y cómo puedo agregar el CSS y el script incluyendo las etiquetas 'origin' e 'integrity' que son requeridas según Bootstrap?

GyRo GyRo
5 nov 2018 15:11:43

Si deseas que los estilos de la biblioteca se carguen antes que todos los demás estilos, y que los estilos del tema se carguen después de todos los demás (con los estilos de los plugins en medio), debes usar dos funciones. La primera, con prioridad "9", se usará para cargar los estilos de la biblioteca, y la segunda, con prioridad "10", se usará para cargar los archivos del tema. Usar solo una función para cargar todo, en un tema, resulta en una situación donde los estilos de los plugins son los primeros en cargarse.

aldemarcalazans aldemarcalazans
2 jul 2021 20:30:24

¿Por qué demonios irías y encolarías una basura como Slim jQuery cuando WordPress ya proporciona jQuery y cargar la versión slim simplemente romperá todo lo que se base en Ajax y similares?! Para encolar Bootstrap no necesitas jQuery slim. Es completamente incorrecto cómo se responde aquí. Esto es lo que necesitarás https://getbootstrap.com/docs/4.0/getting-started/introduction/

User User
11 ago 2021 13:51:18

Por lo tanto: wp_enqueue_style('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css'); wp_enqueue_script( 'popper','https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js', array( 'jquery' ),'1.12.9',true ); wp_enqueue_script( 'bootstrap','https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js', array( 'popper' ),'4.0.0',true );

User User
11 ago 2021 13:51:23

@BedaSchmid La pregunta era sobre por qué sus scripts no se cargaban, ¡y la razón es que estaba usando el mismo id dos veces!

Akshat Akshat
12 ago 2021 23:42:29

No estoy de acuerdo. La pregunta es y fue "¿Cómo encolar Bootstrap 4 en el tema?" y la respuesta está equivocada. Esa respuesta destruirá cualquier AJAX realizado en el sitio. Si respondemos, bien podríamos corregir los otros errores obvios en el problema, porque la gente realmente busca en Google y encuentra respuestas que no siempre coinciden con tu mismo estado mental. Esta es también la razón por la que necesitamos explicar nuestras respuestas, algo más que no hiciste. Sería bueno actualizar la respuesta con una correcta.

User User
13 ago 2021 07:25:54
Mostrar los 4 comentarios restantes
4

Prueba esto:

function abc_load_my_scripts() {
  wp_enqueue_script( 'boot1','https://code.jquery.com/jquery-3.3.1.slim.min.js', array('jquery'));
  wp_enqueue_script( 'boot2','https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js', array('jquery'));
  wp_enqueue_script( 'boot3','https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js', array('jquery'));
}
add_action( 'wp_enqueue_scripts', 'abc_load_my_scripts', 999);

Con el último argumento array('jquery') le estás indicando a WordPress que incluya el script DESPUÉS de jQuery. Ten en cuenta que cada script debe usar un identificador diferente (primer parámetro).

Más información aquí.

Cuando revisas el <head>, ¿estás seguro de que los scripts no se están cargando?

Saludos, Bjorn

16 jun 2018 20:11:07
Comentarios

Probé lo anterior pero los archivos de JavaScript aún no se cargan... lo que hace que el submenú y el botón del menú responsivo no funcionen... estoy usando Chrome y no hay errores en la consola.

User User
16 jun 2018 20:19:41

He actualizado mi respuesta.

Bjorn Bjorn
16 jun 2018 20:23:43

Solucionado... el problema estaba con el $handle ..boot2, boot2 :).. gracias por la ayuda.

User User
16 jun 2018 20:50:03

Como es habitual en Stackoverflow, las respuestas incorrectas reciben votos y son elegidas como correctas, mientras que las únicas respuestas correctas ni siquiera reciben un voto. Ahora tienes mi voto, porque usaste la forma correcta de encolar cualquier cosa en WP.

User User
11 ago 2021 13:53:06