2012-02-06 5 views
3

Wordpress 테마를 프로그래밍 방식으로 전환 할 수 있습니까? 예를 들어 다른 테마가 사용되는 특정 브라우저 (플러그인을 발견 한 것을 발견 한 경우)가 있습니까?코드를 통해 테마 전환 Wordpress

다른 브라우저와는 다른 테마를 사용하여 구식 브라우저 (IE7 이하, Saf 및 FF 3 미만) 및 모바일 브라우저를 제공하고 싶습니다.

나는

switch_theme('twentyten', 'stylesheet');

처럼 내가 기대하는 일을하지 않습니다 그러나 방법 switch_theme (나는 functions.php이를 호출 할 때 내가 빈 오류) 또는 내가 잘못이 방법을 사용하고 발견 ?

답변

2

this을 발견 한 것입니다, 당신에게 searched 워드 프레스 StackExchange을했다 :

add_filter('template', 'wpse_49223_change_theme'); 
add_filter('option_template', 'wpse_49223_change_theme'); 
add_filter('option_stylesheet', 'wpse_49223_change_theme'); 

function wpse_49223_change_theme($theme) 
{ 
    if (wp_is_mobile()) 
     $theme = 'twentyten'; 

    return $theme; 
} 

wp_is_mobile A-내장에 워드 프레스 기능, 울부 짖는 소리를 재생 :

function wp_is_mobile() { 
    static $is_mobile; 

    if (isset($is_mobile)) 
     return $is_mobile; 

    if (empty($_SERVER['HTTP_USER_AGENT'])) { 
     $is_mobile = false; 
    } elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.) 
     || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false 
     || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false 
     || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false 
     || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false 
     || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false) { 
      $is_mobile = true; 
    } else { 
     $is_mobile = false; 
    } 

    return $is_mobile; 
}