在wordpress中动态切换模板

switching templates dynamically in wordpress

现在我正在尝试根据查看网站的设备切换 Wordpress 使用的模板。

这里的确切问题是,唯一似乎正在切换的是脚本和样式表。它们自身的实际模板(索引、页眉、页脚)保持不变。

这是我用来执行此操作的函数:

<?
  function fxn_change_theme($device) {
    $header = $_SERVER['HTTP_X_UA_DEVICE'];
    if ($header === 'mobile') {
        $theme = 'jankness-mobile';
    } elseif ($header === 'tablet') {
        $theme = 'jankness-tablet';
    } else {
        $theme = 'jankness-desktop';
    }
    return $theme;
  }
  add_filter('template', 'fxn_change_theme');
  add_filter('option_template', 'fxn_change_theme');
  add_filter('option_stylesheet', 'fxn_change_theme');
?>

此外,唯一可以做任何事情的过滤器似乎是 'template',选项过滤器做的不多。我已经尝试查找他们的工作,但目前我还不清楚。

这可能是什么问题?

基本上,由于我使用的代码位于 functions.php 中,因此无法在 Wordpress 核心进程中足够早地操作主题内容。所以解决方案是将代码原封不动地移到一个非常简单的插件中,并使用我在此处使用的相同代码连接到 theme_setup 点。