【问题标题】:PHP Conditional to serve different image if Retina Display如果 Retina Display,PHP 有条件提供不同的图像
【发布时间】:2016-01-23 01:38:14
【问题描述】:

我正在寻找各种答案,这些答案使用 javascript 之类的东西在整个网站上创建 Retina 图像,但这不是我想要的。这里有一点背景:

我创建了一个 WordPress 主题,并为常规大小的徽标和用于 Retina 显示器的徽标添加了图片上传(我为网站图标做了同样的事情)。

但我仍在学习 PHP,并且有时间试图弄清楚如何编写一个条件语句,该语句将为非 Retina 显示器提供 X 图像、为 Retina 显示器 (@X2) 提供 Y 图像或 X 图像如果 Y 没有上传任何内容。

如果它有帮助的话,我正在使用 OptionTree 插件在我的主题中创建各种选项,我的 2 张图片的 ID 是“logo-regular”和“logo-retina”。

这就是我现在头文件中的徽标。显然它只加载常规徽标:

if ( ! function_exists( 'ot_get_pixie_option' ) ) {
/* get the logo */
$logo = ot_get_option( 'logo-regular', array() );

if ( ! empty( $logo ) ) {
echo '<a href="' . get_home_url() . '"><img src="' . $logo . '" alt="' . get_bloginfo('name') . '" /></a>';
}
};

【问题讨论】:

  • PHP是服务器端,屏幕是否为retina的信息是客户端。如果不使用 JavaScript 或 CSS,您无法仅使用 PHP 来判断访问您网站的客户端是否有 retina 屏幕。你能做的最好的就是检查用户代理并假设某些用户代理应该retina屏幕。然而,这不是一个非常可靠的方法。在这种情况下,规范是使用 CSS 媒体查询和背景图片。

标签: php wordpress retina-display


【解决方案1】:

我已经通过使用 SVG 图像解决了这个问题。这样一来,所有浏览器的分辨率都尽可能高(至少这是我目前的理论)。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多