Alternate Method
作者
Metaslider
建议使用
WP Mobile Detect. 这里是一个代码示例,我使用它来实现与我认为您正在寻找的类似的结果。需要WP Mobile Detect插件。
<?php if(shortcode_exists(\'metaslider\') && function_exists(wpmd_is_notphone) && wpmd_is_notphone()):
echo(do_shortcode(\'[metaslider id=8302]\'));
endif; ?>
我仍然使用
@media
根据屏幕宽度查询隐藏滑块,我知道这不是100%兼容的。但是,一个好的回退方法可能是在滑块未加载的情况下包含单个图像。这样,设计流程中总会有需要的内容。
Initial Method
此方法不适用于
Metaslider
作为作者的插件从未打算
shortcode
致电via
AJAX
. 您将获得一些可显示的内容,但没有任何功能。可以包括
JS
文件并执行适当的命令来开始滑块,但是上面的替代方法会容易得多。然而,这种方法仍然适用于其他/类似的需求。
我感觉到你的痛苦。我想做同样的事情。我喜欢使用metaslider
我经常使用CSS @media
对于屏幕宽度检测,而不是实际的设备检测,因为我不关心特定的设备,我关心的是屏幕宽度和内容的布局。我想将滑块隐藏在特定宽度以下,而不考虑设备,因为它符合设计布局的流程。
说明如下:;当一切都说了又做了的时候,程序会是这样的
加载不带滑块的页面AJAX
检查是否加载了滑块(通过并添加了类名或您自己的首选方法),并检查屏幕宽度以查看是否需要滑块。(@gmazzap\'s load_shortcode()
功能可能是您在此处查找的功能)如果需要,请加载滑块任何未来AJAX
通过检查内容是否已加载(通过步骤2)并突然结束,可以快速接听来电保持CSS @media
如果屏幕宽度更改,查询可能会隐藏已加载的滑块。试图“卸载”任何东西,只是为了以后可能不得不再次“重新加载”它,这是没有用的我发现了一些代码,允许您在选定的时间段内调用函数一次。这与AJAX
调用以限制在用户调整大小期间调用函数的次数。这样,理想情况下,每次调整大小时只调用一次函数。而不是在用户更改窗口以满足其需求时调用每一帧。(这可能需要很多次,用户完成后,您只需要一次)
var event_call_function_once = (function ()
{
var timers = {};
return function (callback, ms, uniqueId)
{
if (!ms)
{
ms = 2000;
}
if (!uniqueId)
{
uniqueId = "Don\'t call this twice without a uniqueId";
}
if (timers[uniqueId])
{
clearTimeout (timers[uniqueId]);
}
timers[uniqueId] = setTimeout(callback, ms);
};
})();
我在堆栈溢出上找到了这段代码,
HERE, 并根据我自己的意愿对其进行了轻微修改。
从这里,您将要添加loaded
容器的类名,或以其他方式检测滑块shortcode
已通过加载AJAX
. 这样可以避免多次尝试加载内容。(我再次相信@gmazzap\'s 函数可以为您执行此操作。)
您仍然希望使用CSS @media
查询以根据屏幕宽度隐藏滑块,以便用户在桌面上更改屏幕宽度时(如前所述)保持布局有序。在我看来我认为@gmazzap\'s 函数在这里有点过火,使用jQuery
在@media
查询将正常工作。
注:@gmazzap\'s 函数看起来很好,但是他没有显示AJAX
呼叫您需要构建它以满足您的需要。
你的WordPress一面AJAX
打电话可以很简单:(举个例子,我还没有测试过。你的里程数会有所不同。)
//WP AJAX action function
function load_slider_shortcode()
{
echo(do_shortcode(\'[metaslider id=8302]\'));
die();
}
希望这对您或找到此页面的其他人有所帮助。我知道我会根据需要自己使用它。