如何根据设备和按钮点击来切换css文件?

时间:2015-07-08 作者:Foolish Coder

如果网站是在移动设备上打开的,我正在尝试将响应css文件排队。

此外,我还想在单击按钮时切换/排队默认或无响应的css文件。无响应css文件是加载到桌面上的默认样式表。

因此,要求如下:

默认情况下,如果用户来自桌面,则应加载非响应站点。默认情况下,应加载响应站点。如果用户来自移动,则应加载响应站点。如果用户单击移动(响应)站点的桌面切换按钮,则应将非响应站点加载到移动中style.css (无响应css文件)输入到我的主题目录和responsive css 文件位于主题目录中的文件夹中。

无响应css文件位于:theme-directory/style.csstheme-directory/css/responsive.css和我有以下按钮。

<div class="cr-athavan-lang-image">
    <a href="?site=mobile" class="mobile_site" id="mobile_site"><img src="file/path/to/img" alt="switch to mobile site"></a>
    <a href="?site=desktop" class="desktop_site"><img src="file/path/to/img" alt="switch to desktop site"></a>  
</div>
我已将以下代码添加到functions.php

A. 如果来自移动设备的用户:

 if ( wp_is_mobile() ){
        function responsive_css(){
            wp_enqueue_style(
                \'wpa_custom\',
                get_template_directory_uri() . \'/css/responsive.css\'
            );
        }
        add_action( \'wp_enqueue_scripts\', \'responsive_css\', 999 );
    }
B. 如果用户单击按钮,则加载无响应的站点

function switch_css_file(){
    if ($site == \'desktop\'){
        function default_css(){
            wp_enqueue_style(
                \'default_css\',
                get_template_directory_uri() . \'/style.css\'
            );
        }
        add_action( \'wp_enqueue_scripts\', \'default_css\', 999 );
    }
    if ($site == \'mobile\'){
        function default_css(){
            wp_enqueue_style(
                \'default_css\',
                get_template_directory_uri() . \'/css/responsive.css\'
            );
        }
        add_action( \'wp_enqueue_scripts\', \'default_css\', 999 );
    }
}
add_action(\'init\', \'switch_css_file\', 2);
现在,要求1和2已确定。

默认情况下,如果用户来自桌面,则加载非响应网站。如果用户来自移动设备,则加载响应网站。我不确定功能switch_css_file 是否有效。尚未达到第三和第四个要求。如果我单击desktop_site 按钮该站点已重新加载,但仍处于响应版本。

我如何实现第三个目标(&;第四项要求?

此外,我认为我必须在切换期间设置cookie。当desktop_site 按钮被单击,当mobile_site 已单击。

我该怎么做?

1 个回复
最合适的回答,由SO网友:Riffaz Starr 整理而成

01.改变

if (($site == \'desktop\'){ // code line }

if (($site == \'desktop\') && (wp_is_mobile())) { // code line }
02.如果要在浏览器关闭时取消设置cookie,请将时间设置为0(零)或空白。像这样的事情。

setcookie( \'button_clicked\', $_GET[\'button_clicked\'], 0, COOKIEPATH, COOKIE_DOMAIN);

结束

相关推荐

MobilePress插件和WordPress 4.1更新

一个客户端网站目前正在WordPress 4.0.1上运行,他要求更新到4.1。该网站使用MobilePress插件,该插件在过去的WordPress更新中存在问题,但遗憾的是,我找不到太多相关信息。在MobilePress上official plugin page, 它说它兼容WordPress 3.6.1(尽管它正在进行4.0.1安装)。我有一些问题:WordPress更新有多重要?如果发生错误,我可以恢复更新吗?关于MobilePress插件,最终会出现什么问题?怎么才能修复呢?EDIT更新后,没有