【问题标题】:Remove an action based on screen size in WordPress / WooCommerce在 WordPress / WooCommerce 中删除基于屏幕大小的操作
【发布时间】:2016-05-23 17:31:27
【问题描述】:

我已经通过这样的钩子添加了一个动作

function my_wc_function(){

//function codes here;
}

add_action('woocommerce_before_shop_loop_item_title','my_wc_function' );

现在在我的主题选项中,用户可以选择删除此功能,所以我完成了:

if (get_option('wc_remove_function') == 1) {
 remove_action('woocommerce_before_shop_loop_item_title','my_wc_function' );
}

一切顺利,但我担心这一点,我在我的主题选项中有另一个选项,他们应该能够仅在移动屏幕上删除相同的功能(说小于 1024 像素 em>)。

我怎样才能做到这一点?

【问题讨论】:

  • 为什么你需要删除这些选项,你可以用媒体查询隐藏它们?你想对my_wc_function() 做什么(添加内容、删除图标等)?
  • 感谢您的评论。是的,使用 my_wc_function() 这个函数,某些内容会被隐藏,一种悬停效果。由于悬停在移动设备上不起作用,因此不需要。需要该功能来显示悬停效果,例如悬停在产品图像上,显示价格和产品详细信息。因此,它不适用于移动设备,我希望他们在小屏幕上的每个产品图片下方显示这些产品详细信息。
  • 那么,您不能简单地使用媒体查询吗?我知道不提供不会显示的内容会更好,但是,如果它只是用于包含价格和产品详细信息的 div,您可以使用 CSS 隐藏它们。

标签: php wordpress woocommerce media-queries


【解决方案1】:

你能试试下面的代码吗:

<?php
    // Create the function, so you can use it
    function isMobile() {
       return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
    }
    // If the user is on a mobile device, redirect them
    if(isMobile()){
       remove_action('woocommerce_before_shop_loop_item_title','my_wc_function' );
    }
?>

更多信息请查看link

【讨论】:

  • 所以它不会基于屏幕大小,而是基于设备用户代理?
  • 是的,它基于设备用户代理。试试这个并在移动设备上检查它的工作原理。
  • 我不是提问者,但他要求“根据屏幕大小删除操作”。用户代理 != 屏幕尺寸。
  • 是的,我知道,但是根据屏幕大小,在 php 中不可能,你可以使用 javascript 来做到这一点
  • 可以使用 PHP 添加特定的类(如果需要)并使用 CSS 媒体查询来隐藏它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多