根据用户是移动设备还是桌面设备显示不同的标题图像? (Wordpress,“二十七”)

Posted

技术标签:

【中文标题】根据用户是移动设备还是桌面设备显示不同的标题图像? (Wordpress,“二十七”)【英文标题】:Display a different header image depending on if the user is mobile or desktop? (Wordpress, "TwentySeventeen") 【发布时间】:2018-05-03 07:15:12 【问题描述】:

这可能是个愚蠢的问题,对不起。我在 background 图片上找到了很多,但 Wordpress “twentyseventeen” 使用“header media”,这就是我想根据桌面/移动设备更改的内容。

基本上,如果是移动设备,它们会得到“header-a.jpg”,如果是桌面设备,它们会得到“header-b.jpg”。

我认为有一个 CSS 解决方案,但我找不到它!

非常感谢您帮助我!

【问题讨论】:

【参考方案1】:

由于它是默认主题,因此您要查看的功能是get_header_image_tag()。此函数构造要在标题中使用的图像标签。在函数结束时,您可以使用 get_header_image_tag 过滤器更改它的输出。

您需要添加一些 php 代码。所以要么创建一个子主题并将代码添加到主题的functions.php 文件中,要么创建一个自定义插件并在那里添加代码。代码应该是这样的:

function custom_header_image_tag( $html, $header, $attr ) 
    if(strstr($_SERVER['HTTP_USER_AGENT'],'android') || strstr($_SERVER['HTTP_USER_AGENT'],'webOS') || strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || strstr($_SERVER['HTTP_USER_AGENT'],'Windows Phone') || wp_is_mobile())
        $html = "insert custom header image tag here";
    
    return $html;

add_filter( 'get_header_image_tag', 'custom_header_image_tag, 10, 3);

【讨论】:

谢谢,是不是只要把这段代码加到我的子主题functions.php中就这么简单?抱歉这个完全愚蠢的问题,但是我在“在此处插入自定义标题图像标签”中的输入具体是什么样的? @Ads 是的。如果您将其上传到 WordPress 媒体库,“在此处插入自定义标题图像标签”将类似于 <img src="http://yourdomain.com/wp-content/uploads/2017/11/filename.jpg"/> 谢谢,但是它给了我这个错误:由于文件 wp-content/themes/twentyseventeen-child/functions.php 的第 619 行出现错误,您的 PHP 代码更改已回滚。请修复并再次尝试保存。语法错误,意外 ''custom_header_image_tag, 10, ' (T_ENCAPSED_AND_WHITESPACE) 忽略这一点,这只是一个缺失的 ' THANK YOU 完美工作【参考方案2】:

我尝试了下面的 word press 代码,它对我有用,它可以检测网站是否加载到移动设备或桌面,如文档中所述,此代码将平板电脑视为移动设备。

<?php
if ( wp_is_mobile() )  
    /*mobile specific stuff*/

    /* header-a.jpg */


else
    /*desktop specific stuff*/


    /* header-b.jpg */


?>

查看下面的链接,

wp is mobile

【讨论】:

谢谢,但它没有检测到我遇到问题的手机。如果检测到移动设备,我希望它提供不同的标题图像。这就是问题所在,一旦检测到移动设备,我不知道如何告诉它该怎么做。

以上是关于根据用户是移动设备还是桌面设备显示不同的标题图像? (Wordpress,“二十七”)的主要内容,如果未能解决你的问题,请参考以下文章

在不同的设备上显示不同的图像[关闭]

Tensorflow:DecodeJpeg 方法在桌面和移动设备上为同一图像提供不同的像素值

轮播/幻灯片仅在移动设备上

js判断用户的浏览器设备是移动端还是pc端

在桌面、ipad、移动设备上显示不同元素的媒体查询

检测到 Googlebot Desktop 为移动设备