2015-02-07 80 views
0

大家好!主題內部的小工具配置

我需要改變我的主題(移動版本我有不同的外觀),但小部件沒有正確保存。

我試圖從主題配置窗口小部件,但這種方法行不通:

if (!function_exists('sync_widgets_config')): 
    function sync_widgets_config() { 
     static $validConf = [ 
      'orphaned_widgets_1' => [ 
       0 => 'search-2', 
       1 => 'recent-posts-2', 
       2 => 'recent-comments-2', 
       3 => 'archives-2', 
       4 => 'categories-2', 
       5 => 'meta-2', 
      ], 
      'wp_inactive_widgets' => [0 => 'gin-content-categories-2',], 
      'sliding_sidebar' => [ 
       0 => 'gin-login-form-3', 
       1 => 'gin-account-cabinet-2', 
       2 => 'gin-content-top-menu-2', 
      ], 
      'header_area' => [0 => 'gin-top-area-2',], 
      'pre_content' => [0 => 'gin-content-news-slider-2',], 
      'global_menu' => [0 => 'gin-content-categories-3'], 
      'footer' => [0 => 'gin-footer_widget-2',], 
      'global_footer' => [0 => 'gin-siteheart_widget-2',], 
     ]; 

     if ($validConf == wp_get_sidebars_widgets()) { 
      return; 
     } 

     wp_set_sidebars_widgets($validConf); 
    } 

    sync_widgets_config(); 
endif; // if (!function_exists('sync_widgets_config')): 

您能否提供一個方法(或插件)將配置我的小部件爲主題,之後我改變主題,小工具會出現在主題內部保存?

回答

0

我解決了這個問題。我做了下面的步驟:

在這兩個主題,我註冊的微件的區域從兩個主題:

// Desktop areas 
register_sidebar(array(
    'name' => 'Top area', 
... 
)); 
//... 
// Mobile areas 
register_sidebar(array(
    'name' => 'Sliding area', 
... 
)); 

在此之後,我的小部件配置爲我的桌面主題和小工具添加到移動部件領域了。

// If user agent is mobile, we will change theme on fly 
if (wp_is_mobile()) { 
    add_filter('stylesheet', 'change_theme', 1); 
    add_filter('template', 'change_theme', 1); 
} 

// Return mobile theme name 
function change_theme($theme) 
{ 
    return 'mobiletheme'; 
}