Deaktivieren Sie prettyPhoto WordPress (Visual Composer)

Lesezeit: 5 Minuten

Hallo, ich versuche, WP Featherlight als Standard-Lightbox einzurichten, im Moment verwendet Visual Composer prettyPhoto. Also muss ich es deaktivieren, damit WP Featherlight es überschreibt.

Ich habe wpbakery gefragt und diese Antwort bekommen.

Hallo, du kannst prettyphoto tatsächlich überschreiben, indem du in deiner functions.php prettyPhoto() hinzufügst und eine andere Lightbox aufrufst.

Und vom Plug-in-Autor habe ich das bekommen:

Sobald prettyPhoto deaktiviert wurde, sollten Sie nichts weiter mit Lightbox-Bildern auf der Website tun müssen.

So ist es ziemlich klar, was ich tun muss. Deaktivieren Sie prettyPhoto. Aber ich weiß nicht, wie man das macht. Kann ich der functions.php meines Child-Themes eine einfache Zeile hinzufügen? Oder?

Jede Hilfe wäre wirklich willkommen.

Vielen Dank.

Fügen Sie den folgenden Code in die Funktionsdatei Ihres Designs ein.

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

Ich habe dies auf meiner Installation getestet und es funktioniert einwandfrei.

Es entfernt und deregistriert das Javascript und die Stylesheets, die Visual Composer in die PHP-Dateien des Plugins einreiht und registriert, für die verschiedenen Vorlagenelemente und Shortcodes, die die prettyPhoto-Lightbox verwenden.

Der ‘9999’-Parameter erzwingt, dass das Dequeuing/Deregistrieren weit nach dem Einreihen oder Registrieren zu einem früheren Zeitpunkt beim Laden des Plugins erfolgt. Jede Zahl reicht, aber je höher die Zahl, desto besser.

Sie müssen ein benutzerdefiniertes Javascript in Ihr untergeordnetes Thema einreihen, in dem Sie die folgende Funktion überschreiben:

function vc_prettyPhoto() {

}

Auf diese Weise deaktivieren Sie die von Visual Composer vorgenommene Initialisierung des prettyPhoto-Skripts.

Sie können den folgenden Code verwenden, um diese Javascript-Bibliothek zu deaktivieren. Fügen Sie das in Ihre functions.php des Themas ein

wp_dequeue_script( 'prettyphoto' );
wp_dequeue_style( 'prettyphoto' );

Ein weiterer Seitenersteller, den Sie verwenden können, ist King Composer, der schnellere VC ist
https://wordpress.org/plugins/kingcomposer/

  • Es funktioniert tatsächlich nicht. Ich habe eine leere functions.php in meinem Child-Theme-Verzeichnis erstellt und diese beiden Codezeilen hinzugefügt. Aber prettyPhoto ist immer noch aktiv. Ich verwende den Media Grid / Grid Builder zum Erstellen von Galerien.

    Benutzer6285978

    12. Mai 2016 um 12:14 Uhr


Ich bin mir nicht sicher, ob Sie das Problem gelöst haben, aber ich habe eine Lösung (nicht sehr elegant, aber es funktioniert).

Ich habe das ePix-Design für einen Fotografen gekauft und festgestellt, dass das Masonry Media Grid von Visual Composer nicht vollständig reagiert. Meine Lösung war also, 3 Dateien von wp-content/assets/js/dist zu bearbeiten. Diese Dateien sind: 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.  

Danach habe ich Lightbox von dFactor installiert, swipebox ausgewählt und als Selektor prettyPhoto verwendet. Außerdem habe ich Lightbox auf Linkbildern erzwungen. Jetzt reagiert die Lightbox vollständig.

Hoffentlich hilft das jemandem 🙂

Benutzeravatar von WhiteHorse
Weißes Pferd

Sie können Pretty Photo deaktivieren. Verwenden Sie den folgenden Code in der Funktionsdatei des Themas, das war’s.

function remove_scripts(){
  wp_dequeue_script('prettyphoto' );
  wp_deregister_script('prettyphoto' );
}

add_action( 'wp_enqueue_scripts', 'remove_scripts', 100 );

Es wird klappen.

  • Innerhalb der Funktion zum Entfernen von Skripten sollte es DEqueue .. nicht enqueue sein. Außerdem müssen Sie die Stile auch aus der Warteschlange entfernen und deregistrieren. DANN …. es wird funktionieren.

    – Mike Kormendy

    8. September 2016 um 2:30 Uhr


  • Aber das hatte bei mir funktioniert. Auch wenn ich unten eine ähnliche Antwort sehe, ist es jetzt dasselbe wie das, was Sie jetzt bearbeitet haben. Aber die Antwort, die ich eingegeben hatte, funktioniert für mich mit wp_enqueue_script(‘prettyphoto’);

    – Weißes Pferd

    8. September 2016 um 7:24 Uhr

  • Nun, der Grund, warum es für Sie funktioniert hat, ist, dass Sie ein Skript mit diesem Namen und Pfad nicht erneut registriert haben. Der Enqueue-Aufruf hat also die Aktion für diesen Skriptnamen im Grunde ausgeblendet. Das funktioniert, aber ich ziehe es vor, es vollständig aus der Warteschlange zu entfernen und abzumelden, um sicherzustellen, dass es keine Handler für diesen Skriptnamen gibt.

    – Mike Kormendy

    9. September 2016 um 16:30 Uhr

Vals Benutzeravatar
Val

Ich habe an meinem eigenen Problem getestet, einige Schieberegler aus dem Visual Composer zu deaktivieren, und es funktioniert. Ein Beispiel zum Deaktivieren der gesamten Flexslider-, Nivoslider- und Owl Carousel-Schieberegler im Visual Composer-Plugin. Fügen Sie diesen Code in die Datei theme functions.php ein:

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

  • Innerhalb der Funktion zum Entfernen von Skripten sollte es DEqueue .. nicht enqueue sein. Außerdem müssen Sie die Stile auch aus der Warteschlange entfernen und deregistrieren. DANN …. es wird funktionieren.

    – Mike Kormendy

    8. September 2016 um 2:30 Uhr


  • Aber das hatte bei mir funktioniert. Auch wenn ich unten eine ähnliche Antwort sehe, ist es jetzt dasselbe wie das, was Sie jetzt bearbeitet haben. Aber die Antwort, die ich eingegeben hatte, funktioniert für mich mit wp_enqueue_script(‘prettyphoto’);

    – Weißes Pferd

    8. September 2016 um 7:24 Uhr

  • Nun, der Grund, warum es für Sie funktioniert hat, ist, dass Sie ein Skript mit diesem Namen und Pfad nicht erneut registriert haben. Der Enqueue-Aufruf hat also die Aktion für diesen Skriptnamen im Grunde ausgeblendet. Das funktioniert, aber ich ziehe es vor, es vollständig aus der Warteschlange zu entfernen und abzumelden, um sicherzustellen, dass es keine Handler für diesen Skriptnamen gibt.

    – Mike Kormendy

    9. September 2016 um 16:30 Uhr

1390720cookie-checkDeaktivieren Sie prettyPhoto WordPress (Visual Composer)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy