我想通过用户浏览器动态更改我的wordpress主题。所以我在网上找到了这个代码并将其添加到我的index.php文件
add_filter('template', 'switch_theme_by_browser');
add_filter('stylesheet', 'switch_theme_by_browser');
function switch_theme_by_browser($theme) {
$browser = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/MSIE/i',$browser) && !preg_match('/Opera/i',$browser))
{
$theme = "twentyeleven";
}
elseif(preg_match('/Firefox/i',$browser))
{
$theme = "twentyten";
}
elseif(preg_match('/Chrome/i',$browser))
{
$theme = "Boxoffice";
}
return $theme;
}
之后它显示“致命错误:在第17行的/home/xxx/public_html/domain.com/index.php中调用未定义的函数add_filter()”
正如我所说的那样,“add_filter()”应该是一个用wordpress构建的函数。
答案 0 :(得分:0)
正如道森所说,这需要放在你的/wp-content/themes/[theme]/functions.php
文件中。
答案 1 :(得分:0)
在wordpress根目录中,将require( ABSPATH . WPINC . '/plugin.php' );
放在require( ABSPATH . WPINC . '/functions.php' );
之前的文件wp-settings.php中。
我在http://wordpress.org/support/topic/fatal-error-call-to-undefined-function-add_filter验证了此解决方案。