基于URL以编程方式选择主题

时间:2014-01-03 作者:NotoriousWebmaster

我继承了一个有移动版本的网站。让我们称之为qqq。com。它前面有一个Varnish服务器来缓存页面。但Varnish服务器似乎也在检测移动请求,并将URL更改为m.qqq。com。

WP安装将切换到qqq移动主题,而不是qqq主题。

你会怎么做?我正在尝试查找执行此操作的代码,以便在本地dev实例上执行相同的操作。

谢谢你的帮助。

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

激活的主题存储在options 表格:template 是父主题,stylesheet 是子主题。如果没有子主题,则两个值将相同。

当前主机名(URL无协议或路径)在$_SERVER 变量

然后,您可以钩住stylesheettemplate 筛选以强制使用不同的主题。

function use_mobile_theme( $current_theme ) {
    // If the domain is m.qqq.com and the current theme is \'qqq\'
    if ( \'m.qqq.com\' === $_SERVER[\'HTTP_HOST\'] && \'qqq\' === $current_theme ) {
        // Use the \'qqq-mobile\' theme instead
        return \'qqq-mobile\';
    } else {
        // Otherwise, keep the current theme
        return $current_theme;
    }
}

add_filter( \'stylesheet\', \'use_mobile_theme\' );
add_filter( \'template\', \'use_mobile_theme\' );
如果qqq-mobile is a child theme, 删除add_filter( \'template\', ... 线

结束

相关推荐

Responsive Admin Themes

我在看这个管理主题的示例(http://themepixels.com/main/themes/demo/webpage/shamcey/dashboard.html). 至于标签为“Navigation”的左侧管理栏,有没有一种方法可以在不使用插件的情况下实现这种类型的左侧仪表板管理菜单?我想用css、js或Jquery来实现这一点,任何处理编码的东西都可以。