2012-02-06 8 views
3

Wordpressのテーマをプログラム的に切り替えることはできますか?たとえば、特定のブラウザが見つかった場合(それを検出するプラグインが見つかりました)、別のテーマが使用されていますか?Wordpressのテーマを切り替える

私は旧式のブラウザ(IE7以下、Saf、FF 3 e.d.より低い)とモバイルブラウザには他のブラウザとは異なるテーマを付けたいと考えています。

は私が

switch_theme('twentyten', 'stylesheet');

のように私は期待して事をしていませんが、メソッドswitch_themeは(私はのfunctions.phpでこれを呼び出すとき、私は空白のエラーを取得する)または私は間違ってこの方法を使用していました?

答えて

2

はあなたにsearchedワードプレスStackExchangeを持っていた、あなたはthisを見つけただろう:

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を、内蔵されたWordPressの機能、怒鳴るを再現:

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; 
} 
-1

NO!

switch_themeは、ウェブサイト/訪問者全体のテーマをグローバルに切り替えます。あなただけの1のコードを変更することができます

https://wordpress.stackexchange.com/questions/161187/activate-different-theme-for-temporary-preview

:ここ

は/あなたがプレビューすることを可能にする、現在のセッションのために一時的にスイッチのテーマ(異なるテーマを自分のウェブサイトをプレビューするには)プラグインですその中にモバイル検出コードを追加してください。

関連する問題