Hola, estoy tratando de configurar WP Featherlight como la caja de luz predeterminada, en este momento Visual Composer está usando prettyPhoto. Entonces necesito deshabilitarlo, para que WP Featherlight lo sobrescriba.
Le pregunté a wpbakery y obtuve esta respuesta.
Hola, puedes sobrescribir prettyphoto agregando prettyPhoto() en tus functions.php y llamar a otra caja de luz.
Y del autor del complemento obtuve esto:
Una vez que prettyPhoto ha sido deshabilitado, no debería necesitar hacer nada más para las imágenes de la caja de luz en el sitio.
Así que está bastante claro lo que tengo que hacer. Deshabilitar PrettyPhoto. Pero no sé cómo hacer eso. ¿Puedo agregar una línea simple al archivo functions.php de mi tema hijo? ¿O?
Cualquier ayuda sería realmente apreciada.
Gracias.
Coloque el siguiente código en el archivo de función de su tema.
function remove_vc_prettyphoto(){
wp_dequeue_script( 'prettyphoto' );
wp_deregister_script( 'prettyphoto' );
wp_dequeue_style( 'prettyphoto' );
wp_deregister_style( 'prettyphoto' );
}
add_action( 'wp_enqueue_scripts', 'remove_vc_prettyphoto', 9999 );
He probado esto en mi instalación y funciona perfectamente.
Lo que hace es sacar de la cola y de registrar el javascript y las hojas de estilo que Visual Composer pone en cola y registra en los archivos PHP del complemento para los diversos elementos de plantilla y códigos abreviados que usan la caja de luz prettyPhoto.
El parámetro ‘9999’ obliga a que la eliminación de la cola o el registro se produzca mucho después de que se haya producido cualquier puesta en cola o registro antes de la carga del complemento. Cualquier número servirá, pero cuanto mayor sea el número, mejor.
Debe poner en cola un javascript personalizado en su tema secundario donde anule la siguiente función:
function vc_prettyPhoto() {
}
de esta manera, deshabilita la inicialización del script prettyPhoto realizada por Visual Composer.
Puede usar el siguiente código para deshabilitar esa librería javascript. Pon eso en tus funciones.php del tema
wp_dequeue_script( 'prettyphoto' );
wp_dequeue_style( 'prettyphoto' );
También otro creador de páginas que puede usar es King Composer, que es más rápido VC
https://wordpress.org/plugins/kingcomposer/
-
En realidad no funciona. Creé un functions.php en blanco en mi directorio Child Theme y agregué esas dos líneas de código. Pero prettyPhoto sigue activo. Utilizo el generador de cuadrículas/cuadrículas de medios para crear galerías.
– usuario6285978
12 de mayo de 2016 a las 12:14
No estoy seguro si resolviste el problema, pero tengo una solución (no muy elegante, pero funciona).
Compré el tema ePix para un fotógrafo y noté que Masonry Media Grid de Visual Composer no responde completamente. Así que mi solución fue editar 3 archivos de wp-content/assets/js/dist. Esos archivos son: vc_grid.min.js page_editable.min.js js_composer_front.min.js
Just remove window.vc_prettyPhoto() or vc_prettyPhoto() from wherever they appear.
Después de eso, instalé Lightbox de dFactor, elegí swipebox y usé como selector prettyPhoto. También forcé lightbox en las imágenes de enlace. Ahora la caja de luz es totalmente receptiva.
Espero que esto ayude a alguien 🙂
Caballo blanco
Puede desactivar Pretty Photo. Use el siguiente código en el archivo de función del tema, eso es todo.
function remove_scripts(){
wp_dequeue_script('prettyphoto' );
wp_deregister_script('prettyphoto' );
}
add_action( 'wp_enqueue_scripts', 'remove_scripts', 100 );
Funcionará.
-
Dentro de la función de eliminación de scripts, debería ser DEqueue .. no poner en cola. Además, también debe eliminar la cola y cancelar el registro de los estilos. ENTONCES…. funcionará.
–Mike Kormendy
8 de septiembre de 2016 a las 2:30
-
Pero eso me había funcionado. Incluso veo una respuesta similar a continuación, ahora es lo mismo que editó ahora. Pero la respuesta que ingresé me funciona con wp_enqueue_script(‘prettyphoto’);
– Caballo blanco
8 de septiembre de 2016 a las 7:24
-
Bueno, la razón por la que funcionó para usted es porque no volvió a registrar un script con ese nombre y ruta. Entonces, la llamada en cola básicamente borró la acción para ese nombre de script. Eso funciona, pero prefiero eliminar la cola y cancelar el registro por completo para asegurarme de que no haya controladores para ese nombre de secuencia de comandos.
–Mike Kormendy
09/09/2016 a las 16:30
valle
He probado en mi propio problema para desactivar algunos controles deslizantes del Visual Composer y funciona. Un ejemplo de cómo desactivar todos los controles deslizantes Flexslider, Nivoslider y Owl Carousel en el complemento Visual Composer. Agregue este código en el archivo functions.php del tema:
add_action( 'wp_enqueue_scripts', 'deregister_vc_modules', 99 );
function deregister_vc_modules() {
wp_deregister_style( 'flexslider' );
wp_deregister_script( 'flexslider' );
wp_deregister_style( 'nivo-slider-css' );
wp_deregister_style( 'nivo-slider-theme' );
wp_deregister_script( 'nivo-slider' );
wp_deregister_style( 'owl-carousel' );
wp_deregister_script( 'owl-carousel' );
}
-
Dentro de la función de eliminación de scripts, debería ser DEqueue .. no poner en cola. Además, también debe eliminar la cola y cancelar el registro de los estilos. ENTONCES…. funcionará.
–Mike Kormendy
8 de septiembre de 2016 a las 2:30
-
Pero eso me había funcionado. Incluso veo una respuesta similar a continuación, ahora es lo mismo que editó ahora. Pero la respuesta que ingresé me funciona con wp_enqueue_script(‘prettyphoto’);
– Caballo blanco
8 de septiembre de 2016 a las 7:24
-
Bueno, la razón por la que funcionó para usted es porque no volvió a registrar un script con ese nombre y ruta. Entonces, la llamada en cola básicamente borró la acción para ese nombre de script. Eso funciona, pero prefiero eliminar la cola y cancelar el registro por completo para asegurarme de que no haya controladores para ese nombre de secuencia de comandos.
–Mike Kormendy
09/09/2016 a las 16:30