我的Wordpress上有一个插件,我想在用户移动时阻止它。在我的functions.php中,我添加了一行:
if (wp_is_mobile())
{
wp_dequeue_script('flare');
wp_deregister_script('flare');
}
不幸的是,这使得脚本无法为移动和桌面用户加载。所以我需要想办法让这个脚本在移动时卸载。
我在我的后期模板中使用了类似的功能,如果它们在移动设备上,则在帖子的底部添加常规共享按钮 - 但这也无效。它为移动和桌面用户添加了共享按钮。
非常感谢任何帮助!
答案 0 :(得分:3)
试试这个......
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
//Mobile browser do stuff here
} else {
//Do stuff here
}
答案 1 :(得分:0)
你好,只是@jay bhatt 的补充,请检查你的functions.php 是否有过滤器
wp_is_mobile
代码可能看起来像
add_filter( 'wp_is_mobile', 'custom_detection_code', 99, 1 );
然后想想 Jay bhatt 的答案
答案 2 :(得分:-2)
我认为应将dequeuing
次调用添加到wp_print_scripts
操作挂钩。
脚本通常在wp_enqueue_script
挂钩上排队,这在wp_head
进程的早期发生。 wp_print_scripts
挂钩发生在脚本打印之前。所以我认为你应该这样做:
function deque_my_scripts () {
wp_dequeue_script('flare');
wp_deregister_script('flare');
}
if (wp_is_mobile())
{
add_action('wp_print_scripts','deque_my_scripts');
}
您还可以将动作挂钩添加到wp_enqueue_scripts
所以另一种方法是
if (wp_is_mobile())
{
add_action('wp_enqueue_scripts','deque_my_scripts', 20);
}
希望这可以帮助你: - )