【问题标题】:Disable prettyPhoto WordPress (Visual Composer)禁用 prettyPhoto WordPress (Visual Composer)
【发布时间】:2016-09-07 19:43:55
【问题描述】:

您好,我正在尝试将 WP Featherlight 设置为默认灯箱,现在 Visual Composer 正在使用 prettyPhoto。所以我需要禁用它,这样 WP Featherlight 就会覆盖它。

我问过 wpbakery,我得到了这个回复。

您好,您实际上可以通过在您的 functions.php 中添加 prettyPhoto() 并调用另一个灯箱来覆盖 prettyphoto。

我从插件作者那里得到了这个:

一旦 prettyPhoto 被禁用,您不需要做任何事情 否则到网站上的灯箱图像。

所以很清楚我需要做什么。禁用漂亮照片。但我不知道该怎么做。我可以在我的子主题的 functions.php 中添加一个简单的行吗?还是?

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: wordpress prettyphoto featherlight.js visual-composer


    【解决方案1】:

    我已经在我自己的问题上进行了测试,以从 Visual Composer 中停用一些滑块并且它可以工作。如何在 Visual Composer 插件中停用整个 Flexslider、Nivoslider 和 Owl Carousel 滑块的示例。将此代码添加到主题functions.php文件中:

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

    【讨论】:

      【解决方案2】:

      您可以禁用漂亮照片。在主题的函数文件中使用下面的代码,就是这样。

      function remove_scripts(){
        wp_dequeue_script('prettyphoto' );
        wp_deregister_script('prettyphoto' );
      }
      
      add_action( 'wp_enqueue_scripts', 'remove_scripts', 100 );
      

      它会起作用的。

      【讨论】:

      • 在删除脚本函数中,它们应该是 DEqueue .. 而不是 enqueue。另外,您还需要使样式出列和取消注册。那么......它会起作用的。
      • 但这对我有用。即使我在下面看到类似的答案,它现在与您现在编辑的相同。但是我输入的答案对我有用 wp_enqueue_script('prettyphoto');
      • 它对你有用的原因是你没有用那个名字和路径重新注册一个脚本。因此,入队调用基本上取消了该脚本名称的操作。这确实有效,但我更喜欢完全出队和取消注册,以确保该脚本名称没有处理程序。
      【解决方案3】:

      将以下代码放入主题的函数文件中。

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

      我已经在我的安装中对此进行了测试,它可以完美运行。

      它的作用是将 Visual Composer 为使用 prettyPhoto 灯箱的各种模板元素和短代码在整个插件的 PHP 文件中排队和注册的 javascript 和样式表出列和取消注册。

      '9999' 参数强制出队/取消注册在加载插件之前发生的任何入队或注册之后发生。任何数字都可以,但数字越大越好。

      【讨论】:

        【解决方案4】:

        不确定你是否解决了问题,但我有一个解决方案(不是很优雅,但它有效)。

        我确实为摄影师购买了 ePix 主题,并注意到 Visual Composer 的 Masonry Media Grid 没有完全响应。所以我的解决方案是从 wp-content/assets/js/dist 编辑 3 个文件。这些文件是: 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.  
        

        之后,我通过 dFactor 安装了 Lightbox,选择 swipebox 并用作选择器 prettyPhoto。我也确实在链接图像上强制使用灯箱。现在灯箱是完全响应的。

        希望这会对某人有所帮助:)

        【讨论】:

          【解决方案5】:

          您必须在您的子主题中将自定义 javascript 排入队列,并在其中覆盖以下函数:

          function vc_prettyPhoto() {
          
          }
          

          通过这种方式,您可以禁用 Visual Composer 进行的 prettyPhoto 脚本初始化。

          【讨论】:

            【解决方案6】:

            您可以使用下面的代码来禁用该 javascript 库。将其放入主题的functions.php中

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

            您可以使用的其他页面构建器是 King Composer,它是更快的 VC https://wordpress.org/plugins/kingcomposer/

            【讨论】:

            • 它实际上不起作用。我在 Child Theme 目录中创建了一个空白 functions.php 并添加了这两行代码。但 prettyPhoto 仍然处于活动状态。我使用媒体网格/网格生成器来创建画廊。
            猜你喜欢
            • 2018-01-21
            • 2018-08-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-17
            • 1970-01-01
            相关资源
            最近更新 更多