Превключване на тема чрез код Wordpress

Възможно ли е да превключите темата на Wordpress програмно? Например, когато има определен браузър (намерихте плъгин за откриване на това), че се използва друга тема?

Искам да мога да дам на остарелите браузъри (IE7 и по-ниски, по-ниски от Saf и FF 3 ed.) и мобилните браузъри различна тема от другите браузъри.

Намерих обаче метода switch_theme, който не прави това, което очаквам (получавам празна грешка, когато извикам това във functions.php) като

switch_theme('twentyten', 'stylesheet');

Или използвам този метод погрешно?


person Matthijn    schedule 06.02.2012    source източник


Отговори (2)


Ако търсихте в WordPress 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 е вградена функция на 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;
}
person brasofilo    schedule 25.11.2012

NO!

switch_theme глобално превключва темата за целия уебсайт/посетители!

Ето плъгини, които ви позволяват да визуализирате/превключвате тема временно за текущата сесия (за да визуализирате техните уебсайтове с различните теми):

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

Можете просто да промените кода на един от тях и да добавите кодове за МОБИЛНО откриване в данните за вход.

person T.Todua    schedule 13.09.2014