Переключение темы через код Wordpress - PullRequest
3 голосов
/ 07 февраля 2012

Можно ли программно переключать тему Wordpress? Например, когда существует определенный браузер (найден плагин для определения этого), что используется другая тема?

Я хочу, чтобы устаревшие браузеры (IE7 и ниже, ниже Saf и FF 3 и т. Д.) И мобильные браузеры отличались от других браузеров.

Однако я нашел метод switch_theme, который не выполняет то, что я ожидаю (я получаю пустую ошибку при вызове этого в functions.php), как

switch_theme('twentyten', 'stylesheet');

Или я использую этот метод неправильно?

Ответы [ 2 ]

2 голосов
/ 25 ноября 2012

Если бы вы искали WordPress 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;
}
0 голосов
/ 13 сентября 2014

NO!

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

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

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

Вы можете просто изменить код одного из них и добавить МОБИЛЬНОЕ обнаружение кодыв логине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...