【发布时间】: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