在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 点。
现在我正在尝试根据查看网站的设备切换 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 点。