【问题标题】:Mobile detection via PHP in Wordpress with Litespeed Web Server使用 Litespeed Web 服务器在 Wordpress 中通过 PHP 进行移动检测
【发布时间】:2021-04-20 14:40:31
【问题描述】:

我们在一个发布网站上使用 wordpress,我需要使用服务器端移动检测来提供一些广告脚本。 Javascript 不是解决方案,因为来自广告服务器的脚本非常复杂。

问题是条件根本不起作用。桌面被交付给移动设备。

到目前为止,我尝试了 2 个解决方案:

wp_is_mobile() Mobile_Detect.php

它们都在本地工作 - 在移动设备上为 true,在桌面上为 false(使用 Mamp),但在生产服务器中都不工作。

我尝试通过 Litespeed Cache 插件启用 Mobile Cache,并尝试了他们文档中推荐的其他重写条件。没有任何效果。

我们还在 WordPress 之外尝试了一个简单的 mobile_detect 实现,同样的问题:桌面交付到移动设备。

我们的服务器是带有 WHM 的 VPS,所以我们有 root 访问权限。

欢迎任何建议!

谢谢!

【问题讨论】:

  • 如果插件上的移动缓存不起作用,您可能需要启用服务器调试日志,以检查重写规则的确切解释以及添加变化的方式
  • 您是否在应用了重写规则/移动缓存后清除了缓存?如果没有,它仍然会将桌面缓存服务到移动视图

标签: php wordpress caching litespeed


【解决方案1】:

你试过了吗?

function wp_is_mobile() {
    if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
        $is_mobile = false;
    } elseif ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Mobile' ) !== false // Many mobile devices (all iPhone, iPad, etc.)
        || 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 ) {
            $is_mobile = true;
    } else {
        $is_mobile = false;
    }
 
    /**
     * Filters whether the request should be treated as coming from a mobile device or not.
     *
     * @since 4.9.0
     *
     * @param bool $is_mobile Whether the request is from a mobile device or not.
     */
    return apply_filters( 'wp_is_mobile', $is_mobile );
}

学分: https://developer.wordpress.org/reference/functions/wp_is_mobile/

【讨论】:

  • 如上所述,我尝试使用 wp_is_mobile 和 mobile_detect 均未成功。
猜你喜欢
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多