如何为仅限移动设备加载特定的滑块革命?

时间:2016-06-06 20:35:46

标签: javascript php wordpress responsive revolution-slider

我知道有一个响应功能,但不幸的是它仍然会加载桌面上的所有移动资产,反之亦然,为页面加载增加了时间。

所以我更喜欢有两个不同的滑块,每个设备一个。

对此最佳解决方案是什么?

3 个答案:

答案 0 :(得分:2)

这取决于您在网页中设置的方式。

我认为实现你真正想要(需要)的最好方法是使用带条件规则的php:

1)在基于移动检测的条件模板中。这样您就可以避免同时加载2

您可以使用wp_is_mobile()条件wordpress功能来实现此目的:

<?php
    if ( !wp_is_mobile() ) {
        echo do_shortcode('[rev_slider alias="my_desktop_slider"]');
    } 
    else
    {
        // mobile devices
        echo do_shortcode('[rev_slider alias="my_mobile_slider"]');
    }
?>

2)在具有该条件的自定义短代码中:

if( !function_exists('rev_slider_detection') ) {

    function rev_slider_detection( $atts ) {

        extract(shortcode_atts(array(
            'alias' => '' // the alias name of your desktop rev-slider
        ), $atts));

        $output = '[rev_slider alias="';

        if ( !wp_is_mobile() ) {
            // For desktop only
            $output .= $alias . '"]';
        } else {
            // For mobile only
            $output .= $alias . '_mob"]';
        }

        return $output;
        // or (because untested)
        // return do_shortcode('" . $output . "');
    }

    add_shortcode('my_rev', 'rev_slider_detection');
}

您将以这种方式使用它:[my_rev alias="my_revslider_alias_slug"]并且您将需要2个实例的rev滑块,第一个用于桌面,带有一些别名(例如home),第二个对于具有相同别名的移动设备 +&#34; _mob&#34; (例如home_mob)。

参考:

您还可以制作更准确的脚本来检测平板电脑和手机,然后将其用作不同设备类型的条件。

答案 1 :(得分:0)

这对我有用。普通/桌面版本只需要一个[短代码],就会自动选择_mob版本。

if( !function_exists('rev_slider_detection') ) {

    function rev_slider_detection( $atts ) {

        extract(shortcode_atts(array(
            'alias' => ''
        ), $atts));

        $output = '[rev_slider alias="';

        if ( !wp_is_mobile() ) {
            // For desktop only
            $output .= $alias . '"]';
        } else {
            // For mobile only
            $output .= $alias . '_mob"]';
        }

        return do_shortcode($output);
        // or (try this if not working)
        // return $output;
    }

    add_shortcode('my_rev', 'rev_slider_detection');
}

答案 2 :(得分:-1)

echo do_shortcode($ output); //对我有用